workspai 0.48.0 → 0.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -54
- package/contracts/cli-runtime-command-inventory.v1.snapshot.json +4 -0
- package/contracts/extension-cli-compatibility.v1.json +2 -1
- package/contracts/published-contract-catalog.v1.json +5 -0
- package/contracts/runtime-command-surface.v1.json +18 -2
- package/contracts/workspace-intelligence/workspace-graph-stream.v1.json +262 -0
- package/dist/autopilot-release-R4XRTWEM.js +1 -0
- package/dist/{chunk-I46XEIPL.js → chunk-EKZLUMCS.js} +2 -2
- package/dist/{chunk-5S3DJQEP.js → chunk-K4X3DM7R.js} +1 -1
- package/dist/{chunk-Y5UJLPS4.js → chunk-TIE2XMGH.js} +2 -2
- package/dist/{create-DBQNAMKP.js → create-S64IWHAP.js} +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +108 -108
- package/dist/{pipeline-TQM43A3K.js → pipeline-LHTPE3DR.js} +1 -1
- package/dist/{workspace-NCWRINEF.js → workspace-PJPRBUMQ.js} +1 -1
- package/dist/{workspace-foundation-WXJ6I7ES.js → workspace-foundation-WPLD7OEO.js} +1 -1
- package/dist/workspace-graph-stream-KAGGQPJT.js +1 -0
- package/dist/{workspace-intelligence-runner-THYLHHMF.js → workspace-intelligence-runner-OTYTHV6B.js} +1 -1
- package/dist/workspace-run-QND2SIYA.js +1 -0
- package/dist/workspace-watch-7HWGA5TF.js +1 -0
- package/docs/OPEN_SOURCE_USER_SCENARIOS.md +11 -8
- package/docs/README.md +45 -13
- package/docs/README_CONTENT_CONTRACT.md +1 -1
- package/docs/ci-workflows.md +3 -3
- package/docs/commands-reference.md +2 -2
- package/docs/contracts/ARTIFACT_CATALOG.md +7 -1
- package/docs/creating-workspaces-and-projects.md +16 -12
- package/docs/doctor-command.md +30 -28
- package/docs/examples/ci-agent-grounding.yml +1 -1
- package/docs/from-code-to-shared-understanding.md +2 -2
- package/docs/workspace-intelligence-evaluation.md +8 -6
- package/docs/workspace-intelligence-runner.md +17 -6
- package/docs/workspace-operations.md +13 -5
- package/package.json +9 -4
- package/templates/kits/fastapi-ddd/README.md.j2 +1 -1
- package/dist/autopilot-release-XGVXPOZI.js +0 -1
- package/dist/workspace-run-RLIYSOTN.js +0 -1
- package/dist/workspace-watch-3BPGLFLB.js +0 -1
- /package/dist/{chunk-QNONOO4F.js → chunk-E2KJ5QWY.js} +0 -0
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Workspace Operations
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Use this guide to bring existing software into Workspai, move or share workspace
|
|
4
|
+
state safely, and manage supporting local services. It explains what each
|
|
5
|
+
operation changes before you run it.
|
|
4
6
|
|
|
5
7
|
Command syntax: [commands-reference.md](./commands-reference.md).
|
|
6
8
|
|
|
@@ -8,8 +10,11 @@ Command syntax: [commands-reference.md](./commands-reference.md).
|
|
|
8
10
|
|
|
9
11
|
Use `import` to copy or clone an existing project into a Workspai workspace.
|
|
10
12
|
Use `adopt` when the project must stay where it already lives but should become
|
|
11
|
-
visible to Workspai
|
|
12
|
-
|
|
13
|
+
visible to Workspai. In both cases, the project becomes part of the shared
|
|
14
|
+
system map, checks, and AI context.
|
|
15
|
+
|
|
16
|
+
RapidKit Core module commands remain available only when existing project
|
|
17
|
+
metadata identifies a kit that supports modules.
|
|
13
18
|
|
|
14
19
|
```bash
|
|
15
20
|
npx workspai import ../orders-api
|
|
@@ -24,7 +29,8 @@ npx workspai adopt --json
|
|
|
24
29
|
- Local folders are copied; git sources are cloned with shallow history.
|
|
25
30
|
- Outside any workspace (no `--workspace`), Workspai creates or reuses the managed `workspai` workspace. New defaults use `~/.workspai/workspaces/workspai`; valid legacy candidates under `~/rapidkit/workspaces/workspai` and `~/Workspai/rapidkits/workspai` can still be reused.
|
|
26
31
|
- Existing workspaces under legacy managed roots remain registered after upgrade.
|
|
27
|
-
- CLI prints
|
|
32
|
+
- CLI prints the exact next `cd ...` step. JSON mode returns the same value as
|
|
33
|
+
`suggestedCdCommand`.
|
|
28
34
|
- Failed workspace sync rolls back imported files and registry entries.
|
|
29
35
|
|
|
30
36
|
### Adopt behavior
|
|
@@ -38,7 +44,9 @@ npx workspai adopt --json
|
|
|
38
44
|
### JSON output (`--json`)
|
|
39
45
|
|
|
40
46
|
- Import returns `workspacePath`, `workspaceResolution`, `defaultWorkspaceCreated`, `suggestedCdCommand`, and `importedProject`. The imported project includes its `source`.
|
|
41
|
-
- Adopt returns `workspacePath`, `workspaceResolution`,
|
|
47
|
+
- Adopt returns `workspacePath`, `workspaceResolution`,
|
|
48
|
+
`defaultWorkspaceCreated`, `wouldCreateDefaultWorkspace`,
|
|
49
|
+
`suggestedCdCommand`, `dryRun`, and `adoptedProject`.
|
|
42
50
|
- Project results include detected `name`, `path`, `stack`, `runtime`, `framework`, `supportTier`, `moduleSupport`, and `confidence` where available.
|
|
43
51
|
|
|
44
52
|
Imported projects receive `.workspai/import-readiness.json`. Adopted projects add frontend-aware detection for Next.js, React, Vite, Vue, Angular, SvelteKit, Nuxt, Astro, Remix, and Solid.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "workspai",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.49.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Open-source workspace intelligence CLI for software systems: create, adopt, govern, verify, and align polyglot workspaces for humans, CI, IDEs, and AI agents.",
|
|
6
6
|
"keywords": [
|
|
@@ -35,13 +35,17 @@
|
|
|
35
35
|
"generator",
|
|
36
36
|
"scaffold"
|
|
37
37
|
],
|
|
38
|
-
"author": "
|
|
38
|
+
"author": "Chistiq",
|
|
39
39
|
"license": "MIT",
|
|
40
40
|
"repository": {
|
|
41
41
|
"type": "git",
|
|
42
|
-
"url": "git+https://github.com/
|
|
42
|
+
"url": "git+https://github.com/chistiq/workspai.git",
|
|
43
43
|
"directory": "packages/cli"
|
|
44
44
|
},
|
|
45
|
+
"homepage": "https://www.workspai.com/",
|
|
46
|
+
"bugs": {
|
|
47
|
+
"url": "https://github.com/chistiq/workspai/issues"
|
|
48
|
+
},
|
|
45
49
|
"bin": {
|
|
46
50
|
"workspai": "dist/index.js"
|
|
47
51
|
},
|
|
@@ -117,10 +121,11 @@
|
|
|
117
121
|
"security:fix": "corepack npm audit fix",
|
|
118
122
|
"metrics": "tsx scripts/metrics.ts",
|
|
119
123
|
"validate:docs-examples": "node scripts/validate-doc-examples.mjs",
|
|
124
|
+
"check:github-release-notes": "node scripts/github-release-notes.mjs --check",
|
|
120
125
|
"check:markdown-links": "node scripts/check-markdown-links.mjs",
|
|
121
126
|
"check:docs-drift": "node scripts/docs-drift-guard.mjs",
|
|
122
127
|
"smoke:readme": "node scripts/smoke-readme-commands.mjs",
|
|
123
|
-
"validate:docs": "corepack npm run check:markdown-links && corepack npm run check:docs-drift && corepack npm run validate:docs-examples && corepack npm run smoke:readme",
|
|
128
|
+
"validate:docs": "corepack npm run check:markdown-links && corepack npm run check:docs-drift && corepack npm run validate:docs-examples && corepack npm run check:github-release-notes && corepack npm run smoke:readme",
|
|
124
129
|
"smoke:frontend-generators": "tsup && node scripts/smoke-frontend-generators.mjs",
|
|
125
130
|
"smoke:frontend-generators:network": "tsup && node scripts/smoke-frontend-generators.mjs --execute",
|
|
126
131
|
"sync:contracts": "node scripts/sync-contracts.mjs",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# {{ project_name }}
|
|
2
2
|
|
|
3
|
-
Domain-driven FastAPI service generated with [RapidKit Core](https://github.com/
|
|
3
|
+
Domain-driven FastAPI service generated with [RapidKit Core](https://github.com/chistiq/rapidkit-core). It can be adopted into Workspai workspace intelligence when you want workspace-level context, evidence, and release governance.
|
|
4
4
|
|
|
5
5
|
## Quick start
|
|
6
6
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{b as AUTOPILOT_RELEASE_ALIAS_FILENAME,a as AUTOPILOT_RELEASE_LAST_RUN_FILENAME,c as runAutopilotRelease}from'./chunk-5S3DJQEP.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{a as runWorkspaceStage}from'./chunk-QNONOO4F.js';export{a as WORKSPACE_RUN_LAST_REPORT_FILENAME}from'./chunk-HDXNIN4N.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import {a}from'./chunk-PRTR2DQ2.js';import {m as m$1}from'./chunk-37CVKXBD.js';import {b as b$1}from'./chunk-J5ENLXDF.js';import {a as a$1}from'./chunk-KB44JP4M.js';import P from'fs';var w="workspace-watch-event.v1";function b(t){return a$1(t,"contracts/workspace-watch-event.v1.json","Workspace watch event"),t}function g(t){return `${t.from}\0${t.to}\0${t.kind}`}function f(t){return (t.graph?.edges??[]).map(r=>({from:r.from,to:r.to,kind:r.kind}))}function m(t){let o=[...a(t).entries()].sort((a,n)=>a[0].localeCompare(n[0])).map(([a,n])=>({id:a,hash:n})),c=f(t).map(g).sort((a,n)=>a.localeCompare(n));return b$1({projects:o,edges:c})}function R(t,r){let o=a(r),c=t?a(t):new Map,a$1=[],n=[];for(let[e,s]of o.entries())c.has(e)?c.get(e)!==s&&a$1.push(e):n.push(e);let d=[];for(let e of c.keys())o.has(e)||d.push(e);let i=new Map(t?f(t).map(e=>[g(e),e]):[]),l=new Map(f(r).map(e=>[g(e),e])),p=[];for(let[e,s]of l.entries())i.has(e)||p.push(s);let h=[];for(let[e,s]of i.entries())l.has(e)||h.push(s);let u=(e,s)=>g(e).localeCompare(g(s));return a$1.sort((e,s)=>e.localeCompare(s)),n.sort((e,s)=>e.localeCompare(s)),d.sort((e,s)=>e.localeCompare(s)),p.sort(u),h.sort(u),{changedProjects:a$1,addedProjects:n,removedProjects:d,edgesAdded:p,edgesRemoved:h}}var k=class{model=null;sequence=0;rebuild;now;constructor(r,o){this.rebuild=o?.rebuild??(()=>m$1({...r})),this.now=o?.now??(()=>new Date);}get currentModel(){return this.model}async start(){let r=Date.now(),{model:o}=await this.rebuild();return this.model=o,this.buildEvent("ready","initial",null,o,Date.now()-r)}async pulse(){let r=Date.now(),o=this.model,{model:c,mode:a}=await this.rebuild(),n=this.buildEvent(this.hasStructuralChange(o,c)?"changed":"unchanged",a,o,c,Date.now()-r);return this.model=c,n}hasStructuralChange(r,o){return r?m(r)!==m(o):true}buildEvent(r,o,c,a,n){let d=R(c,a),i=m(a),l=c?m(c)!==i:true;return b({schemaVersion:w,kind:r,sequence:this.sequence++,timestamp:this.now().toISOString(),mode:o,modelHash:i,modelHashChanged:l,changedProjects:d.changedProjects,addedProjects:d.addedProjects,removedProjects:d.removedProjects,graph:{nodeCount:a.graph?.nodes.length??0,edgeCount:a.graph?.edges.length??0,edgesAdded:d.edgesAdded,edgesRemoved:d.edgesRemoved},durationMs:n})}},C=new Set([".git",".hg",".svn","node_modules",".venv","venv","dist","build","out","target","coverage","htmlcov",".next",".turbo",".cache"]),y=new Set(["reports","cache","tmp",".cache"]);function S(t){if(!t)return false;let r=t.split(/[\\/]/).filter(Boolean);if(r.some(o=>C.has(o)))return false;for(let o=0;o<r.length-1;o+=1)if((r[o]===".workspai"||r[o]===".rapidkit")&&y.has(r[o+1]))return false;return true}async function I(t){let r=new k(t.buildOptions,t.engineOptions),o=await r.start();if(t.emit(o),t.once)return;let c=t.debounceMs??250,a=t.selfWriteSuppressionMs??Math.max(400,c+150),n=null,d=false,i=false,l=0,p=async()=>{if(d){i=true;return}d=true;try{let e=await r.pulse();t.emit(e);}catch(e){t.emit(b({schemaVersion:w,kind:"error",sequence:-1,timestamp:new Date().toISOString(),mode:"full",modelHash:r.currentModel?m(r.currentModel):"",modelHashChanged:false,changedProjects:[],addedProjects:[],removedProjects:[],graph:{nodeCount:0,edgeCount:0,edgesAdded:[],edgesRemoved:[]},durationMs:0,error:e instanceof Error?e.message:String(e)}));}finally{d=false,l=Date.now()+a,i&&(i=false,p());}},h=e=>{S(e)&&(d||Date.now()<l||(n&&clearTimeout(n),n=setTimeout(()=>{n=null,p();},c)));};t.onProgress?.(`Watching ${t.workspacePath} for changes (Ctrl+C to stop).`);let u=P.watch(t.workspacePath,{recursive:true},(e,s)=>{typeof s=="string"?h(s):s&&h(Buffer.from(s).toString("utf8"));});await new Promise(e=>{let s=()=>{n&&clearTimeout(n),u.close(),e();};if(t.signal){if(t.signal.aborted){s();return}t.signal.addEventListener("abort",s,{once:true});}u.on("error",()=>s());});}export{w as WORKSPACE_WATCH_EVENT_SCHEMA_VERSION,k as WorkspaceWatchEngine,m as computeWatchModelHash,R as diffWatchModels,S as isWatchRelevantPath,I as runWorkspaceWatch};
|
|
File without changes
|