**chore(version): bump version to 0.9.18 and update build configurations**
- Updated version to `0.9.18` in `package.json`, `cli-package/package.json`, and `src/utils/version.ts`. - Updated npm badge in `README.md` to reflect version `0.9.18`. - Adjusted `publish-cli.js` to synchronize publishing of the main and CLI packages with enhanced build steps. - Introduced `tsconfig.json` updates to include type paths (`types.d.ts`) in CLI for better type handling. - Refined CLI scripts for improved TypeScript annotations and better code structure. - Removed `@types/omelette` and `omelette` dependencies along with associated CLI configurations to simplify the codebase. - Updated `.gitignore` to exclude CLI `dist` directory for cleaner repository management. - Added `deploy:both` npm script for combined publishing of main and CLI packages. This release ensures version consistency, improves CLI workflows, and enhances type handling while decluttering unused dependencies.
This commit is contained in:
parent
da9a37b15c
commit
6abc0ee5c1
10 changed files with 266 additions and 130 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -50,3 +50,4 @@ Thumbs.db
|
|||
# Generated files
|
||||
/encoded-image.html
|
||||
/encoded-image.txt
|
||||
/cli-package/dist/
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
[](https://nodejs.org/)
|
||||
[](https://www.typescriptlang.org/)
|
||||
[](CONTRIBUTING.md)
|
||||
[](https://www.npmjs.com/package/@soulcraft/brainy)
|
||||
[](https://www.npmjs.com/package/@soulcraft/brainy)
|
||||
|
||||
[//]: # ([](https://github.com/sodal-project/cartographer))
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@soulcraft/brainy-cli",
|
||||
"version": "0.9.17",
|
||||
"version": "0.9.18",
|
||||
"description": "Command-line interface for the Brainy vector graph database",
|
||||
"type": "module",
|
||||
"bin": {
|
||||
|
|
@ -39,7 +39,7 @@
|
|||
"url": "https://github.com/soulcraft-research/brainy.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"@soulcraft/brainy": "0.9.17",
|
||||
"@soulcraft/brainy": "0.9.18",
|
||||
"commander": "^14.0.0",
|
||||
"omelette": "^0.4.17"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -5,7 +5,16 @@
|
|||
* A command-line interface for interacting with the Brainy vector database
|
||||
*/
|
||||
|
||||
import { BrainyData, NounType, VerbType, FileSystemStorage, sequentialPipeline, augmentationPipeline, ExecutionMode, AugmentationType } from '@soulcraft/brainy'
|
||||
import {
|
||||
BrainyData,
|
||||
NounType,
|
||||
VerbType,
|
||||
FileSystemStorage,
|
||||
sequentialPipeline,
|
||||
augmentationPipeline,
|
||||
ExecutionMode,
|
||||
AugmentationType
|
||||
} from '@soulcraft/brainy'
|
||||
import { fileURLToPath } from 'url'
|
||||
import { dirname, join } from 'path'
|
||||
import fs from 'fs'
|
||||
|
|
@ -145,18 +154,28 @@ program
|
|||
const results = await db.searchText(query, limit)
|
||||
|
||||
console.log(`Search results for "${query}":`)
|
||||
results.forEach((result, index) => {
|
||||
console.log(`${index + 1}. ID: ${result.id}`)
|
||||
console.log(` Score: ${result.score.toFixed(4)}`)
|
||||
console.log(` Metadata: ${JSON.stringify(result.metadata)}`)
|
||||
console.log(
|
||||
` Vector: [${result.vector
|
||||
.slice(0, 3)
|
||||
.map((v) => v.toFixed(2))
|
||||
.join(', ')}...]`
|
||||
)
|
||||
console.log()
|
||||
})
|
||||
results.forEach(
|
||||
(
|
||||
result: {
|
||||
id: string
|
||||
score: number
|
||||
metadata: any
|
||||
vector: number[]
|
||||
},
|
||||
index: number
|
||||
) => {
|
||||
console.log(`${index + 1}. ID: ${result.id}`)
|
||||
console.log(` Score: ${result.score.toFixed(4)}`)
|
||||
console.log(` Metadata: ${JSON.stringify(result.metadata)}`)
|
||||
console.log(
|
||||
` Vector: [${result.vector
|
||||
.slice(0, 3)
|
||||
.map((v: number) => v.toFixed(2))
|
||||
.join(', ')}...]`
|
||||
)
|
||||
console.log()
|
||||
}
|
||||
)
|
||||
} catch (error) {
|
||||
console.error('Error:', (error as Error).message)
|
||||
process.exit(1)
|
||||
|
|
@ -179,7 +198,7 @@ program
|
|||
console.log(
|
||||
`Vector: [${noun.vector
|
||||
.slice(0, 5)
|
||||
.map((v) => v.toFixed(2))
|
||||
.map((v: number) => v.toFixed(2))
|
||||
.join(', ')}...]`
|
||||
)
|
||||
} else {
|
||||
|
|
@ -252,15 +271,24 @@ program
|
|||
if (verbs.length === 0) {
|
||||
console.log('No relationships found')
|
||||
} else {
|
||||
verbs.forEach((verb, index) => {
|
||||
console.log(`${index + 1}. ID: ${verb.id}`)
|
||||
console.log(
|
||||
` Type: ${Object.keys(VerbType).find((key) => VerbType[key as keyof typeof VerbType] === verb.metadata.verb) || verb.metadata.verb}`
|
||||
)
|
||||
console.log(` Target: ${verb.targetId}`)
|
||||
console.log(` Metadata: ${JSON.stringify(verb.metadata)}`)
|
||||
console.log()
|
||||
})
|
||||
verbs.forEach(
|
||||
(
|
||||
verb: {
|
||||
id: string
|
||||
targetId: string
|
||||
metadata: { verb: VerbType; [key: string]: any }
|
||||
},
|
||||
index: number
|
||||
) => {
|
||||
console.log(`${index + 1}. ID: ${verb.id}`)
|
||||
console.log(
|
||||
` Type: ${Object.keys(VerbType).find((key) => VerbType[key as keyof typeof VerbType] === verb.metadata.verb) || verb.metadata.verb}`
|
||||
)
|
||||
console.log(` Target: ${verb.targetId}`)
|
||||
console.log(` Metadata: ${JSON.stringify(verb.metadata)}`)
|
||||
console.log()
|
||||
}
|
||||
)
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error:', (error as Error).message)
|
||||
|
|
@ -734,7 +762,9 @@ program
|
|||
// Print some sample IDs
|
||||
if (result.nounIds.length > 0) {
|
||||
console.log('\nSample noun IDs:')
|
||||
result.nounIds.slice(0, 3).forEach((id) => console.log(`- ${id}`))
|
||||
result.nounIds
|
||||
.slice(0, 3)
|
||||
.forEach((id: string) => console.log(`- ${id}`))
|
||||
if (result.nounIds.length > 3) {
|
||||
console.log(`... and ${result.nounIds.length - 3} more`)
|
||||
}
|
||||
|
|
@ -742,7 +772,9 @@ program
|
|||
|
||||
if (result.verbIds.length > 0) {
|
||||
console.log('\nSample verb IDs:')
|
||||
result.verbIds.slice(0, 3).forEach((id) => console.log(`- ${id}`))
|
||||
result.verbIds
|
||||
.slice(0, 3)
|
||||
.forEach((id: string) => console.log(`- ${id}`))
|
||||
if (result.verbIds.length > 3) {
|
||||
console.log(`... and ${result.verbIds.length - 3} more`)
|
||||
}
|
||||
|
|
@ -928,7 +960,7 @@ augmentCommand
|
|||
if (availableTypes.length === 0) {
|
||||
console.log(' No augmentation types available')
|
||||
} else {
|
||||
availableTypes.forEach((type) => {
|
||||
availableTypes.forEach((type: string) => {
|
||||
const augmentations =
|
||||
augmentationPipeline.getAugmentationsByType(type)
|
||||
console.log(
|
||||
|
|
@ -938,10 +970,18 @@ augmentCommand
|
|||
if (augmentations.length === 0) {
|
||||
console.log(' No augmentations registered for this type')
|
||||
} else {
|
||||
augmentations.forEach((aug) => {
|
||||
console.log(` - ${aug.name}: ${aug.description}`)
|
||||
console.log(` Status: ${aug.enabled ? 'Enabled' : 'Disabled'}`)
|
||||
})
|
||||
augmentations.forEach(
|
||||
(aug: {
|
||||
name: string
|
||||
description: string
|
||||
enabled: boolean
|
||||
}) => {
|
||||
console.log(` - ${aug.name}: ${aug.description}`)
|
||||
console.log(
|
||||
` Status: ${aug.enabled ? 'Enabled' : 'Disabled'}`
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
@ -952,10 +992,12 @@ augmentCommand
|
|||
if (webSocketAugs.length === 0) {
|
||||
console.log(' No WebSocket-enabled augmentations available')
|
||||
} else {
|
||||
webSocketAugs.forEach((aug) => {
|
||||
console.log(` - ${aug.name}: ${aug.description}`)
|
||||
console.log(` Status: ${aug.enabled ? 'Enabled' : 'Disabled'}`)
|
||||
})
|
||||
webSocketAugs.forEach(
|
||||
(aug: { name: string; description: string; enabled: boolean }) => {
|
||||
console.log(` - ${aug.name}: ${aug.description}`)
|
||||
console.log(` Status: ${aug.enabled ? 'Enabled' : 'Disabled'}`)
|
||||
}
|
||||
)
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error:', (error as Error).message)
|
||||
|
|
@ -1023,7 +1065,14 @@ augmentCommand
|
|||
console.log('\nStage Results:')
|
||||
|
||||
// Display stage results
|
||||
Object.entries(result.stageResults).forEach(([stage, stageResult]) => {
|
||||
Object.entries(result.stageResults).forEach((entry) => {
|
||||
const stage = entry[0]
|
||||
const stageResult = entry[1] as {
|
||||
success?: boolean
|
||||
error?: string
|
||||
data?: any
|
||||
}
|
||||
|
||||
console.log(`\n${stage.toUpperCase()}:`)
|
||||
console.log(` Success: ${stageResult?.success}`)
|
||||
|
||||
|
|
@ -1036,7 +1085,7 @@ augmentCommand
|
|||
console.log(
|
||||
JSON.stringify(stageResult.data, null, 2)
|
||||
.split('\n')
|
||||
.map((line) => ` ${line}`)
|
||||
.map((line: string) => ` ${line}`)
|
||||
.join('\n')
|
||||
)
|
||||
}
|
||||
|
|
@ -1085,36 +1134,49 @@ augmentCommand
|
|||
// Process the data asynchronously without blocking
|
||||
sequentialPipeline
|
||||
.processData(data, options.dataType, { stopOnError: false })
|
||||
.then((result) => {
|
||||
console.log(`\nProcessed: "${data}"`)
|
||||
console.log(`Success: ${result.success}`)
|
||||
.then(
|
||||
(result: {
|
||||
success: boolean
|
||||
error?: string
|
||||
data?: any
|
||||
stageResults: Record<
|
||||
string,
|
||||
{ success?: boolean; error?: string; data?: any }
|
||||
>
|
||||
}) => {
|
||||
console.log(`\nProcessed: "${data}"`)
|
||||
console.log(`Success: ${result.success}`)
|
||||
|
||||
if (options.verbose) {
|
||||
console.log('Stage Results:')
|
||||
Object.entries(result.stageResults).forEach(
|
||||
([stage, stageResult]) => {
|
||||
if (stageResult?.success) {
|
||||
console.log(` ${stage}: Success`)
|
||||
} else {
|
||||
console.log(
|
||||
` ${stage}: Failed - ${stageResult?.error || 'Unknown error'}`
|
||||
)
|
||||
if (options.verbose) {
|
||||
console.log('Stage Results:')
|
||||
Object.entries(result.stageResults).forEach(
|
||||
([stage, stageResult]: [
|
||||
string,
|
||||
{ success?: boolean; error?: string; data?: any }
|
||||
]) => {
|
||||
if (stageResult?.success) {
|
||||
console.log(` ${stage}: Success`)
|
||||
} else {
|
||||
console.log(
|
||||
` ${stage}: Failed - ${stageResult?.error || 'Unknown error'}`
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (result.data) {
|
||||
console.log('Result Data:')
|
||||
console.log(
|
||||
JSON.stringify(result.data, null, 2)
|
||||
.split('\n')
|
||||
.map((line) => ` ${line}`)
|
||||
.join('\n')
|
||||
)
|
||||
if (result.data) {
|
||||
console.log('Result Data:')
|
||||
console.log(
|
||||
JSON.stringify(result.data, null, 2)
|
||||
.split('\n')
|
||||
.map((line: string) => ` ${line}`)
|
||||
.join('\n')
|
||||
)
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
)
|
||||
.catch((error: Error) => {
|
||||
console.error(`Error processing "${data}":`, error.message)
|
||||
})
|
||||
}
|
||||
|
|
@ -1170,7 +1232,7 @@ augmentCommand
|
|||
'<type>',
|
||||
'Augmentation type (sense, memory, cognition, conduit, activation, perception, dialog, websocket)'
|
||||
)
|
||||
.action(async (typeArg) => {
|
||||
.action(async (typeArg: string) => {
|
||||
try {
|
||||
// Initialize the pipeline
|
||||
await augmentationPipeline.initialize()
|
||||
|
|
@ -1222,32 +1284,37 @@ augmentCommand
|
|||
console.log(' No augmentations registered for this type')
|
||||
} else {
|
||||
// Display information about each augmentation
|
||||
augmentations.forEach((aug, index) => {
|
||||
console.log(`\n${index + 1}. ${aug.name}`)
|
||||
console.log(` Description: ${aug.description}`)
|
||||
console.log(` Status: ${aug.enabled ? 'Enabled' : 'Disabled'}`)
|
||||
augmentations.forEach(
|
||||
(
|
||||
aug: { name: string; description: string; enabled: boolean },
|
||||
index: number
|
||||
) => {
|
||||
console.log(`\n${index + 1}. ${aug.name}`)
|
||||
console.log(` Description: ${aug.description}`)
|
||||
console.log(` Status: ${aug.enabled ? 'Enabled' : 'Disabled'}`)
|
||||
|
||||
// List available methods
|
||||
console.log(' Available Methods:')
|
||||
// List available methods
|
||||
console.log(' Available Methods:')
|
||||
|
||||
// Get all methods that aren't from Object.prototype
|
||||
const methods = Object.getOwnPropertyNames(
|
||||
Object.getPrototypeOf(aug)
|
||||
).filter(
|
||||
(method) =>
|
||||
method !== 'constructor' &&
|
||||
typeof (aug as any)[method] === 'function' &&
|
||||
!['initialize', 'shutDown', 'getStatus'].includes(method)
|
||||
)
|
||||
// Get all methods that aren't from Object.prototype
|
||||
const methods = Object.getOwnPropertyNames(
|
||||
Object.getPrototypeOf(aug)
|
||||
).filter(
|
||||
(method) =>
|
||||
method !== 'constructor' &&
|
||||
typeof (aug as any)[method] === 'function' &&
|
||||
!['initialize', 'shutDown', 'getStatus'].includes(method)
|
||||
)
|
||||
|
||||
if (methods.length === 0) {
|
||||
console.log(' No custom methods available')
|
||||
} else {
|
||||
methods.forEach((method) => {
|
||||
console.log(` - ${method}`)
|
||||
})
|
||||
if (methods.length === 0) {
|
||||
console.log(' No custom methods available')
|
||||
} else {
|
||||
methods.forEach((method: string) => {
|
||||
console.log(` - ${method}`)
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
// Show pipeline order information
|
||||
|
|
|
|||
|
|
@ -8,8 +8,11 @@
|
|||
"outDir": "dist",
|
||||
"declaration": true,
|
||||
"sourceMap": true,
|
||||
"skipLibCheck": true
|
||||
"skipLibCheck": true,
|
||||
"paths": {
|
||||
"@soulcraft/brainy": ["../dist/unified.d.ts"]
|
||||
}
|
||||
},
|
||||
"include": ["src/**/*"],
|
||||
"include": ["src/**/*", "types.d.ts"],
|
||||
"exclude": ["node_modules", "dist"]
|
||||
}
|
||||
|
|
|
|||
90
cli-package/types.d.ts
vendored
Normal file
90
cli-package/types.d.ts
vendored
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
// Type declarations for @soulcraft/brainy
|
||||
declare module '@soulcraft/brainy' {
|
||||
// Core types
|
||||
export class BrainyData {
|
||||
constructor(config?: any)
|
||||
|
||||
init(): Promise<void>
|
||||
|
||||
add(text: string, metadata?: any): Promise<string>
|
||||
|
||||
get(id: string): Promise<any>
|
||||
|
||||
delete(id: string): Promise<void>
|
||||
|
||||
search(query: string, limit?: number, options?: any): Promise<any[]>
|
||||
|
||||
searchText(query: string, limit?: number, options?: any): Promise<any[]>
|
||||
|
||||
addVerb(
|
||||
sourceId: string,
|
||||
targetId: string,
|
||||
text?: string,
|
||||
options?: any
|
||||
): Promise<string>
|
||||
|
||||
getVerbsBySource(sourceId: string): Promise<any[]>
|
||||
|
||||
getVerbsByTarget(targetId: string): Promise<any[]>
|
||||
|
||||
status(): Promise<any>
|
||||
|
||||
clear(): Promise<void>
|
||||
|
||||
backup(): Promise<any>
|
||||
|
||||
restore(data: any, options?: any): Promise<any>
|
||||
|
||||
importSparseData(data: any, options?: any): Promise<any>
|
||||
|
||||
generateRandomGraph(options?: any): Promise<any>
|
||||
}
|
||||
|
||||
export class FileSystemStorage {
|
||||
constructor(dataDir: string)
|
||||
}
|
||||
|
||||
// Pipelines
|
||||
export const sequentialPipeline: any
|
||||
export const augmentationPipeline: any
|
||||
|
||||
// Enums
|
||||
export enum NounType {
|
||||
Person = 'Person',
|
||||
Place = 'Place',
|
||||
Thing = 'Thing',
|
||||
Event = 'Event',
|
||||
Concept = 'Concept',
|
||||
Content = 'Content'
|
||||
}
|
||||
|
||||
export enum VerbType {
|
||||
RelatedTo = 'RelatedTo',
|
||||
PartOf = 'PartOf',
|
||||
HasA = 'HasA',
|
||||
UsedFor = 'UsedFor',
|
||||
CapableOf = 'CapableOf',
|
||||
AtLocation = 'AtLocation',
|
||||
Causes = 'Causes',
|
||||
HasProperty = 'HasProperty',
|
||||
Owns = 'Owns',
|
||||
CreatedBy = 'CreatedBy'
|
||||
}
|
||||
|
||||
export enum ExecutionMode {
|
||||
SEQUENTIAL = 'sequential',
|
||||
PARALLEL = 'parallel',
|
||||
THREADED = 'threaded'
|
||||
}
|
||||
|
||||
export enum AugmentationType {
|
||||
SENSE = 'sense',
|
||||
MEMORY = 'memory',
|
||||
COGNITION = 'cognition',
|
||||
CONDUIT = 'conduit',
|
||||
ACTIVATION = 'activation',
|
||||
PERCEPTION = 'perception',
|
||||
DIALOG = 'dialog',
|
||||
WEBSOCKET = 'websocket'
|
||||
}
|
||||
}
|
||||
32
package-lock.json
generated
32
package-lock.json
generated
|
|
@ -18,13 +18,8 @@
|
|||
"@tensorflow/tfjs-converter": "^4.22.0",
|
||||
"@tensorflow/tfjs-core": "^4.22.0",
|
||||
"buffer": "^6.0.3",
|
||||
"commander": "^14.0.0",
|
||||
"omelette": "^0.4.17",
|
||||
"uuid": "^9.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"brainy": "cli-wrapper.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@rollup/plugin-commonjs": "^25.0.7",
|
||||
"@rollup/plugin-json": "^6.1.0",
|
||||
|
|
@ -32,7 +27,6 @@
|
|||
"@rollup/plugin-replace": "^5.0.5",
|
||||
"@rollup/plugin-typescript": "^11.1.6",
|
||||
"@types/node": "^20.4.5",
|
||||
"@types/omelette": "^0.4.5",
|
||||
"@types/uuid": "^10.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
||||
"@typescript-eslint/parser": "^6.0.0",
|
||||
|
|
@ -43,7 +37,7 @@
|
|||
"typescript": "^5.1.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=23.11.0"
|
||||
"node": ">=24.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-crypto/crc32": {
|
||||
|
|
@ -2535,13 +2529,6 @@
|
|||
"integrity": "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/omelette": {
|
||||
"version": "0.4.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/omelette/-/omelette-0.4.5.tgz",
|
||||
"integrity": "sha512-zUCJpVRwfMcZfkxSCGp73mgd3/xesvPz5tQJIORlfP/zkYEyp9KUfF7IP3RRjyZR3DwxkPs96/IFf70GmYZYHQ==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/resolve": {
|
||||
"version": "1.20.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
|
||||
|
|
@ -3036,15 +3023,6 @@
|
|||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/commander": {
|
||||
"version": "14.0.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-14.0.0.tgz",
|
||||
"integrity": "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=20"
|
||||
}
|
||||
},
|
||||
"node_modules/commondir": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
|
||||
|
|
@ -4218,14 +4196,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"node_modules/omelette": {
|
||||
"version": "0.4.17",
|
||||
"resolved": "https://registry.npmjs.org/omelette/-/omelette-0.4.17.tgz",
|
||||
"integrity": "sha512-UlU69G6Bhu0XFjw3tjFZ0qyiMUjAOR+rdzblA1nLQ8xiqFtxOVlkhM39BlgTpLFx9fxkm6rnxNNRsS5GxE/yww==",
|
||||
"engines": {
|
||||
"node": ">=0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
|
|
|
|||
|
|
@ -43,7 +43,8 @@
|
|||
"check-format": "prettier --check \"src/**/*.{ts,js}\"",
|
||||
"check-style": "node scripts/check-code-style.js",
|
||||
"prepare": "npm run build",
|
||||
"deploy": "node scripts/publish-cli.js",
|
||||
"deploy": "npm run build && npm publish",
|
||||
"deploy:both": "node scripts/publish-cli.js",
|
||||
"deploy:cloud:aws": "cd cloud-wrapper && npm run build && npm run deploy:aws",
|
||||
"deploy:cloud:gcp": "cd cloud-wrapper && npm run build && npm run deploy:gcp",
|
||||
"deploy:cloud:cloudflare": "cd cloud-wrapper && npm run build && npm run deploy:cloudflare",
|
||||
|
|
|
|||
|
|
@ -39,22 +39,26 @@ try {
|
|||
console.log('Building main package...')
|
||||
execSync('npm run build', { stdio: 'inherit', cwd: rootDir })
|
||||
|
||||
// Step 3: Build the CLI package
|
||||
// Step 3: Publish the main package
|
||||
console.log('Publishing main package...')
|
||||
execSync('npm publish', { stdio: 'inherit', cwd: rootDir })
|
||||
|
||||
// Step 4: Wait a moment to ensure the package is available
|
||||
console.log('Waiting for package to be available...')
|
||||
await new Promise(resolve => setTimeout(resolve, 5000))
|
||||
|
||||
// Step 5: Build the CLI package
|
||||
console.log('Building CLI package...')
|
||||
execSync('npm run build', { stdio: 'inherit', cwd: cliPackageDir })
|
||||
|
||||
// Step 4: Verify the CLI was built successfully
|
||||
// Step 6: Verify the CLI was built successfully
|
||||
const cliPath = path.join(cliPackageDir, 'dist', 'cli.js')
|
||||
if (!fs.existsSync(cliPath)) {
|
||||
console.error(`Error: CLI build failed. File not found at ${cliPath}`)
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
// Step 5: Publish the main package
|
||||
console.log('Publishing main package...')
|
||||
execSync('npm publish', { stdio: 'inherit', cwd: rootDir })
|
||||
|
||||
// Step 6: Publish the CLI package
|
||||
// Step 7: Publish the CLI package
|
||||
console.log('Publishing CLI package...')
|
||||
execSync('npm publish', { stdio: 'inherit', cwd: cliPackageDir })
|
||||
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
* Do not modify this file directly.
|
||||
*/
|
||||
|
||||
export const VERSION = '0.9.17';
|
||||
export const VERSION = '0.9.18';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue