workspai 0.75.1 → 0.76.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.
Files changed (138) hide show
  1. package/contracts/agent-framework-capabilities.v1.json +2 -2
  2. package/contracts/cli-runtime-command-inventory.v1.snapshot.json +12 -0
  3. package/contracts/create-planner-capabilities.v1.json +24 -0
  4. package/contracts/extension-cli-compatibility.v1.json +4 -2
  5. package/contracts/published-contract-catalog.v1.json +10 -0
  6. package/contracts/runtime-command-surface.v1.json +3 -1
  7. package/contracts/workspace-intelligence/agent-framework-admission-candidate.v2.json +217 -0
  8. package/contracts/workspace-intelligence/agent-framework-conformance-report.v2.json +274 -0
  9. package/contracts/workspace-intelligence-architecture.v1.json +5 -3
  10. package/dist/analyze-QVRVJB7I.js +1 -0
  11. package/dist/{artifact-remediation-plan-HD5K52UJ.js → artifact-remediation-plan-SRH2Q6N2.js} +1 -1
  12. package/dist/autopilot-release-DOGIETAT.js +1 -0
  13. package/dist/capabilities-command-FYBUVHZ7.js +1 -0
  14. package/dist/{chunk-SCKEFXF5.js → chunk-23CNBYIW.js} +1 -1
  15. package/dist/chunk-2DZLCINC.js +1 -0
  16. package/dist/{chunk-2GWQ6NZV.js → chunk-2I2A55RE.js} +1 -1
  17. package/dist/{chunk-W7I65IXY.js → chunk-3HXEPDFF.js} +2 -2
  18. package/dist/{chunk-2OCJKLTW.js → chunk-4BBFEHPL.js} +1 -1
  19. package/dist/{chunk-VHMDWRDG.js → chunk-4BPZJR4Z.js} +4 -4
  20. package/dist/{chunk-UE7ART6X.js → chunk-4MXKXHLW.js} +1 -1
  21. package/dist/{chunk-JKAAKE4Z.js → chunk-4R44E7HN.js} +1 -1
  22. package/dist/chunk-5HNQIMGW.js +1 -0
  23. package/dist/chunk-5S6IZ6PY.js +2 -0
  24. package/dist/chunk-6BO4QHKA.js +1 -0
  25. package/dist/{chunk-25V5XMWB.js → chunk-AGI46TSQ.js} +1 -1
  26. package/dist/{chunk-2CT5SN2L.js → chunk-BZLDCASY.js} +1 -1
  27. package/dist/{chunk-OA2YJN22.js → chunk-DWDYLKVW.js} +1 -1
  28. package/dist/{chunk-6B7L4NZE.js → chunk-EFHSRPW7.js} +6 -6
  29. package/dist/{chunk-RTD5D35M.js → chunk-FBF767WP.js} +1 -1
  30. package/dist/{chunk-NGZF4YJS.js → chunk-FD2ZGGCQ.js} +1 -1
  31. package/dist/chunk-H4YHIOCT.js +7 -0
  32. package/dist/{chunk-ZI54C2AO.js → chunk-HRGIHWYH.js} +1 -1
  33. package/dist/{chunk-HDISUL3F.js → chunk-IKNWNGLY.js} +1 -1
  34. package/dist/{chunk-NRIMJMTF.js → chunk-KO4DM2AV.js} +8 -8
  35. package/dist/{chunk-6KMR5PKQ.js → chunk-KW35SWG6.js} +5 -5
  36. package/dist/{chunk-NI5QWBZK.js → chunk-L6VNI4DN.js} +1 -1
  37. package/dist/chunk-NSC4VWV2.js +1 -0
  38. package/dist/chunk-P5LI5DL3.js +1 -0
  39. package/dist/chunk-PSQPKK6H.js +97 -0
  40. package/dist/chunk-PUH3TSPC.js +1 -0
  41. package/dist/chunk-QFDTKOYS.js +2649 -0
  42. package/dist/chunk-QIPW3G2H.js +1 -0
  43. package/dist/chunk-QVFIR64T.js +10 -0
  44. package/dist/{chunk-AICCXYY5.js → chunk-R3Z4LY3O.js} +1 -1
  45. package/dist/chunk-RKFTUIZ4.js +4 -0
  46. package/dist/chunk-ROOPODG6.js +2 -0
  47. package/dist/{chunk-COOVCORC.js → chunk-SVO2GGTV.js} +1 -1
  48. package/dist/chunk-TFFNHWXY.js +4 -0
  49. package/dist/chunk-TJ3MDZMC.js +6 -0
  50. package/dist/{chunk-DJH2CH42.js → chunk-UHIN3RS6.js} +1 -1
  51. package/dist/chunk-UOTOJJI4.js +681 -0
  52. package/dist/chunk-VODNLROY.js +1 -0
  53. package/dist/{chunk-3WQ5TYCO.js → chunk-X7MDTBX5.js} +1 -1
  54. package/dist/{chunk-RPM67N7A.js → chunk-XHUM372O.js} +1 -1
  55. package/dist/chunk-YLLCZMKP.js +2 -0
  56. package/dist/{chunk-4VSQNSGH.js → chunk-Z2M2XCIB.js} +1 -1
  57. package/dist/chunk-ZXQC36NJ.js +1 -0
  58. package/dist/{create-P4XJVZCL.js → create-ZRUQ3KNZ.js} +1 -1
  59. package/dist/{demo-kit-ALW6OSQV.js → demo-kit-QNGY4KQ5.js} +1 -1
  60. package/dist/{doctor-PFN6KB6P.js → doctor-7V7LJLHX.js} +1 -1
  61. package/dist/{dotnet-webapi-clean-6Z4EXEJY.js → dotnet-webapi-clean-GXTNZMKO.js} +1 -1
  62. package/dist/{goal-lifecycle-BDWTWS55.js → goal-lifecycle-EM4DUJCR.js} +1 -1
  63. package/dist/{goal-pack-5JDNZFKV.js → goal-pack-YMWZHAH6.js} +1 -1
  64. package/dist/{gofiber-standard-TDJQIVQZ.js → gofiber-standard-PFBIAMGR.js} +1 -1
  65. package/dist/{gogin-standard-UEF3IHSJ.js → gogin-standard-DW5GL7YG.js} +1 -1
  66. package/dist/index.d.ts +12 -6
  67. package/dist/index.js +255 -253
  68. package/dist/{pipeline-OUYS4ZYV.js → pipeline-6MBH3MU2.js} +1 -1
  69. package/dist/platform-capabilities-RWOWND5Q.js +1 -0
  70. package/dist/{project-agent-entry-75WO3QWP.js → project-agent-entry-ZXAE2MAJ.js} +1 -1
  71. package/dist/{project-intelligence-lens-JCHFOIA7.js → project-intelligence-lens-NBTPOK2R.js} +1 -1
  72. package/dist/{project-test-coverage-3P5FH6E5.js → project-test-coverage-HOZC72EK.js} +1 -1
  73. package/dist/proof-carrying-change-WJFAKK3C.js +1 -0
  74. package/dist/{pythonRapidkitExec-UMFLDIYR.js → pythonRapidkitExec-S35OEIEF.js} +1 -1
  75. package/dist/{rust-axum-4TRVPFMB.js → rust-axum-L7UAYARA.js} +1 -1
  76. package/dist/{springboot-standard-COWL75GT.js → springboot-standard-CZH24KWD.js} +1 -1
  77. package/dist/verified-goal-B7EX2PBE.js +1 -0
  78. package/dist/{workspace-CBQDOUSH.js → workspace-EBPYCSEM.js} +1 -1
  79. package/dist/{workspace-agent-sync-RTOTO3DY.js → workspace-agent-sync-Y4F6FBBC.js} +1 -1
  80. package/dist/{workspace-context-STRZO2N3.js → workspace-context-Y7F7GJCQ.js} +1 -1
  81. package/dist/{workspace-contract-PMHUUKFM.js → workspace-contract-XJMWMVQE.js} +1 -1
  82. package/dist/{workspace-explain-CATMJUMN.js → workspace-explain-T2J5ZLY7.js} +1 -1
  83. package/dist/{workspace-foundation-OULCDCXG.js → workspace-foundation-2UP6IMTH.js} +1 -1
  84. package/dist/{workspace-graph-stream-Q55CI4K4.js → workspace-graph-stream-MZVL3OCX.js} +1 -1
  85. package/dist/workspace-graph-token-efficiency-WF6TGSK7.js +1 -0
  86. package/dist/{workspace-intelligence-3RPZRWSF.js → workspace-intelligence-FZRQIFFM.js} +1 -1
  87. package/dist/{workspace-intelligence-benchmark-R5MEGJQS.js → workspace-intelligence-benchmark-V6AEVDMB.js} +1 -1
  88. package/dist/{workspace-intelligence-runner-BNZUYUUN.js → workspace-intelligence-runner-IXT62JG7.js} +1 -1
  89. package/dist/{workspace-knowledge-graph-VJLD35ES.js → workspace-knowledge-graph-EFC4TUDZ.js} +1 -1
  90. package/dist/workspace-knowledge-graph-query-BROIV27M.js +1 -0
  91. package/dist/workspace-knowledge-graph-snapshot-QIMF7TCF.js +1 -0
  92. package/dist/{workspace-mcp-serve-67NTYD67.js → workspace-mcp-serve-C42UUU7W.js} +1 -1
  93. package/dist/{workspace-model-6TKZMNEF.js → workspace-model-72SJ6WXT.js} +1 -1
  94. package/dist/{workspace-onboarding-7V7EH3RH.js → workspace-onboarding-TFDAIHTS.js} +1 -1
  95. package/dist/{workspace-registry-summary-ILVO7DEU.js → workspace-registry-summary-ZNTXSUI4.js} +1 -1
  96. package/dist/{workspace-repair-engine-2VGFB3DJ.js → workspace-repair-engine-542TAL3Z.js} +1 -1
  97. package/dist/workspace-run-NAPJYNSZ.js +1 -0
  98. package/dist/{workspace-verify-VQWYDAF2.js → workspace-verify-UXKENOQU.js} +1 -1
  99. package/dist/{workspace-watch-2Z636HWS.js → workspace-watch-DV5AHLOK.js} +1 -1
  100. package/docs/README.md +2 -2
  101. package/docs/agent-framework-adapters.md +190 -46
  102. package/docs/ci-workflows.md +37 -14
  103. package/docs/commands-reference.md +30 -14
  104. package/docs/creating-workspaces-and-projects.md +30 -10
  105. package/docs/doctor-command.md +6 -0
  106. package/docs/native-kit-baselines.md +4 -0
  107. package/docs/workspace-run.md +10 -0
  108. package/package.json +7 -4
  109. package/scripts/enterprise-package-smoke.mjs +98 -5
  110. package/dist/analyze-Z3EZNJRI.js +0 -1
  111. package/dist/autopilot-release-T6XFRWZT.js +0 -1
  112. package/dist/capabilities-command-VK3LQLP2.js +0 -1
  113. package/dist/chunk-566NQQTJ.js +0 -97
  114. package/dist/chunk-5EEXLM45.js +0 -1
  115. package/dist/chunk-65AE7EC5.js +0 -2
  116. package/dist/chunk-6NSJBKKK.js +0 -4
  117. package/dist/chunk-7NKM6EHE.js +0 -7
  118. package/dist/chunk-ABUSBLBH.js +0 -1
  119. package/dist/chunk-BR6QIYQS.js +0 -1
  120. package/dist/chunk-CMLLERGG.js +0 -418
  121. package/dist/chunk-DFREJHG7.js +0 -1
  122. package/dist/chunk-FU6SQ2ND.js +0 -1
  123. package/dist/chunk-M6DVNC6X.js +0 -2
  124. package/dist/chunk-O5XQP5E7.js +0 -1
  125. package/dist/chunk-OH6LV5JP.js +0 -6
  126. package/dist/chunk-PTI743SC.js +0 -7
  127. package/dist/chunk-QBKOPXKC.js +0 -1
  128. package/dist/chunk-RGNCL5OB.js +0 -1
  129. package/dist/chunk-VJQPIH2S.js +0 -681
  130. package/dist/chunk-WPPRUFJW.js +0 -4
  131. package/dist/chunk-ZKYH44ER.js +0 -1
  132. package/dist/platform-capabilities-DB4BZPTD.js +0 -1
  133. package/dist/proof-carrying-change-LAYV4LTI.js +0 -1
  134. package/dist/verified-goal-75KGBWTE.js +0 -1
  135. package/dist/workspace-graph-token-efficiency-YHXFGH3Z.js +0 -1
  136. package/dist/workspace-knowledge-graph-query-TT2KK3SF.js +0 -1
  137. package/dist/workspace-knowledge-graph-snapshot-TQAKDDUA.js +0 -1
  138. package/dist/workspace-run-X7KV6MIT.js +0 -1
@@ -9,6 +9,7 @@ import process from 'node:process';
9
9
  const repoRoot = process.cwd();
10
10
  const cliPath = path.join(repoRoot, 'dist', 'index.js');
11
11
  const isolatedHome = fs.mkdtempSync(path.join(os.tmpdir(), 'workspai-enterprise-home-'));
12
+ let releaseAdmittedAdapterIds = new Set();
12
13
 
13
14
  process.on('exit', () => {
14
15
  fs.rmSync(isolatedHome, { recursive: true, force: true });
@@ -348,12 +349,43 @@ function assertCliContracts() {
348
349
  }
349
350
 
350
351
  const frameworks = parseTrailingJson(runCli(['agent', 'framework', 'list', '--json']));
352
+ if (frameworks.schemaVersion !== 'workspai.agent-framework-list.v1') {
353
+ fail(`unexpected agent framework list schema: ${frameworks.schemaVersion}`);
354
+ }
355
+ const adapters = Array.isArray(frameworks.adapters) ? frameworks.adapters : [];
356
+ const admittedIds = adapters
357
+ .filter((adapter) => adapter.status === 'admitted')
358
+ .map((adapter) => adapter.id)
359
+ .sort();
360
+ const expectedAdapterIds = [
361
+ 'microsoft-agent-framework-dotnet',
362
+ 'microsoft-agent-framework-python',
363
+ 'openai-agents-python',
364
+ 'openai-agents-typescript',
365
+ ];
351
366
  if (
352
- frameworks.schemaVersion !== 'workspai.agent-framework-list.v1' ||
353
- frameworks.adapters?.length !== 2 ||
354
- frameworks.adapters.some((adapter) => adapter.status !== 'admitted')
367
+ admittedIds.length !== 0 &&
368
+ JSON.stringify(admittedIds) !== JSON.stringify(expectedAdapterIds)
355
369
  ) {
356
- fail('published CLI does not expose the two exact release-admitted framework adapters');
370
+ fail(
371
+ `published CLI does not expose the exact release-admitted framework adapters (admitted: ${
372
+ admittedIds.join(', ') || 'none'
373
+ })`
374
+ );
375
+ }
376
+ releaseAdmittedAdapterIds = new Set(admittedIds);
377
+ for (const openaiId of ['openai-agents-python', 'openai-agents-typescript']) {
378
+ const openai = adapters.find((adapter) => adapter.id === openaiId);
379
+ if (!openai) {
380
+ fail(`published CLI is missing implemented OpenAI adapter ${openaiId}`);
381
+ }
382
+ if (openai.stability !== 'stable') {
383
+ fail(
384
+ `${openaiId} must be labeled stable after the digest-changing promotion (observed: ${
385
+ openai.stability ?? 'missing'
386
+ })`
387
+ );
388
+ }
357
389
  }
358
390
 
359
391
  log(`verified CLI contract surfaces for v${version.version}`);
@@ -390,6 +422,7 @@ function smokeCreateAgentFrameworkKits() {
390
422
  {
391
423
  kit: 'agent.microsoft.python',
392
424
  name: 'python-agent',
425
+ expectCreate: releaseAdmittedAdapterIds.has('microsoft-agent-framework-python'),
393
426
  expectedFiles: [
394
427
  'README.md',
395
428
  '.workspai/project.json',
@@ -404,6 +437,7 @@ function smokeCreateAgentFrameworkKits() {
404
437
  {
405
438
  kit: 'agent.microsoft.dotnet',
406
439
  name: 'dotnet-agent',
440
+ expectCreate: releaseAdmittedAdapterIds.has('microsoft-agent-framework-dotnet'),
407
441
  expectedFiles: [
408
442
  'README.md',
409
443
  '.workspai/project.json',
@@ -417,6 +451,41 @@ function smokeCreateAgentFrameworkKits() {
417
451
  'agents/primary/README.md',
418
452
  ],
419
453
  },
454
+ {
455
+ kit: 'agent.openai.python',
456
+ name: 'openai-python-agent',
457
+ expectCreate: releaseAdmittedAdapterIds.has('openai-agents-python'),
458
+ expectedFiles: [
459
+ 'README.md',
460
+ '.workspai/project.json',
461
+ '.workspai/agent-frameworks/openai-agents-python/primary.json',
462
+ 'agents/primary/main.py',
463
+ 'agents/primary/workspai_context.py',
464
+ 'agents/primary/agent.py',
465
+ 'agents/primary/pyproject.toml',
466
+ 'agents/primary/tests/test_context.py',
467
+ 'agents/primary/.env.example',
468
+ 'agents/primary/README.md',
469
+ ],
470
+ },
471
+ {
472
+ kit: 'agent.openai.typescript',
473
+ name: 'openai-typescript-agent',
474
+ expectCreate: releaseAdmittedAdapterIds.has('openai-agents-typescript'),
475
+ expectedFiles: [
476
+ 'README.md',
477
+ '.workspai/project.json',
478
+ '.workspai/agent-frameworks/openai-agents-typescript/primary.json',
479
+ 'agents/primary/src/main.ts',
480
+ 'agents/primary/src/workspai-context.ts',
481
+ 'agents/primary/src/agent.ts',
482
+ 'agents/primary/package.json',
483
+ 'agents/primary/tsconfig.json',
484
+ 'agents/primary/tests/context.test.ts',
485
+ 'agents/primary/.env.example',
486
+ 'agents/primary/README.md',
487
+ ],
488
+ },
420
489
  ];
421
490
  try {
422
491
  for (const scenario of scenarios) {
@@ -430,6 +499,22 @@ function smokeCreateAgentFrameworkKits() {
430
499
  stdio: ['ignore', 'pipe', 'pipe'],
431
500
  }
432
501
  );
502
+ const combined = `${result.stdout}\n${result.stderr}`;
503
+ if (scenario.expectCreate === false) {
504
+ if (result.status === 0) {
505
+ fail(`${scenario.kit} create succeeded before the stable digest was release-admitted`);
506
+ }
507
+ if (
508
+ !/not release-admitted|adapter (?:manifest|implementation) changed after release admission/i.test(
509
+ combined
510
+ )
511
+ ) {
512
+ fail(
513
+ `${scenario.kit} failed closed without an admission blocker\n${result.stdout}\n${result.stderr}`
514
+ );
515
+ }
516
+ continue;
517
+ }
433
518
  if (result.status !== 0) {
434
519
  fail(
435
520
  `${scenario.kit} governed create failed with exit ${result.status}\n${result.stdout}\n${result.stderr}`
@@ -437,8 +522,16 @@ function smokeCreateAgentFrameworkKits() {
437
522
  }
438
523
  assertGeneratedProject(path.join(workspacePath, scenario.name), scenario.expectedFiles);
439
524
  }
525
+ const admittedCreates = scenarios.filter((scenario) => scenario.expectCreate);
440
526
  const ownershipRoot = path.join(workspacePath, '.workspai', 'agent-frameworks', 'ownership');
441
- if (!fs.existsSync(ownershipRoot)) fail('agent kit smoke did not record ownership receipts');
527
+ const recordedOwnership = fs.existsSync(ownershipRoot);
528
+ if (admittedCreates.length === 0) {
529
+ if (recordedOwnership) {
530
+ fail('agent kit smoke recorded ownership receipts without a release-admitted create');
531
+ }
532
+ } else if (!recordedOwnership) {
533
+ fail('agent kit smoke did not record ownership receipts');
534
+ }
442
535
  } finally {
443
536
  fs.rmSync(tempDir, { recursive: true, force: true });
444
537
  }
@@ -1 +0,0 @@
1
- export{b as printAnalyzeReport,a as runAnalyze}from'./chunk-4VSQNSGH.js';
@@ -1 +0,0 @@
1
- export{b as AUTOPILOT_RELEASE_ALIAS_FILENAME,a as AUTOPILOT_RELEASE_LAST_RUN_FILENAME,c as runAutopilotRelease}from'./chunk-NI5QWBZK.js';
@@ -1 +0,0 @@
1
- export{b as runDoctorCapabilities}from'./chunk-JKAAKE4Z.js';