@zonease/aiworker-cli 0.15.2 → 0.16.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 (79) hide show
  1. package/aiworker-bun.js +231 -221
  2. package/official-apps/aiworker-hr/dist/index.js +194 -79
  3. package/official-apps/aiworker-hr/dist/{host-mounted.js → mounted/host-mounted.js} +195 -80
  4. package/official-apps/aiworker-hr/dist/{standalone.js → standalone/standalone.js} +195 -80
  5. package/official-apps/aiworker-hr/engine-assets/workspace/AGENTS.md +38 -0
  6. package/official-apps/aiworker-hr/engine-assets/workspace/CLAUDE.md +1 -0
  7. package/official-apps/aiworker-hr/engine-assets/workspace/README.md +17 -0
  8. package/official-apps/aiworker-hr/engine-assets/workspace/evidence/README.md +3 -0
  9. package/official-apps/aiworker-hr/{src → host-adapter}/index.ts +2 -2
  10. package/official-apps/aiworker-hr/{src → host-adapter/mounted}/host-mounted.ts +1 -1
  11. package/official-apps/aiworker-hr/{src → host-adapter/standalone}/standalone.ts +1 -1
  12. package/official-apps/aiworker-hr/package.json +7 -7
  13. package/official-apps/aiworker-hr/soul-app.manifest.json +35 -23
  14. package/official-apps/aiworker-hr/tsconfig.json +2 -2
  15. package/official-apps/aiworker-qa/dist/index.js +194 -79
  16. package/official-apps/aiworker-qa/dist/{host-mounted.js → mounted/host-mounted.js} +195 -80
  17. package/official-apps/aiworker-qa/dist/{standalone.js → standalone/standalone.js} +195 -80
  18. package/official-apps/aiworker-qa/engine-assets/skills/.gitkeep +1 -0
  19. package/official-apps/aiworker-qa/engine-assets/workspace/AGENTS.md +38 -0
  20. package/official-apps/aiworker-qa/engine-assets/workspace/CLAUDE.md +1 -0
  21. package/official-apps/aiworker-qa/engine-assets/workspace/README.md +17 -0
  22. package/official-apps/aiworker-qa/engine-assets/workspace/evidence/README.md +3 -0
  23. package/official-apps/aiworker-qa/{src → host-adapter}/index.ts +2 -2
  24. package/official-apps/aiworker-qa/{src → host-adapter/mounted}/host-mounted.ts +1 -1
  25. package/official-apps/aiworker-qa/{src → host-adapter/standalone}/standalone.ts +1 -1
  26. package/official-apps/aiworker-qa/package.json +7 -7
  27. package/official-apps/aiworker-qa/soul-app.manifest.json +35 -23
  28. package/official-apps/aiworker-qa/tsconfig.json +2 -2
  29. package/package.json +1 -1
  30. /package/official-apps/aiworker-hr/{skills → engine-assets/skills}/candidate-profile/SKILL.md +0 -0
  31. /package/official-apps/aiworker-hr/{skills → engine-assets/skills}/evidence-screening/SKILL.md +0 -0
  32. /package/official-apps/aiworker-hr/{skills → engine-assets/skills}/hiring-risk-review/SKILL.md +0 -0
  33. /package/official-apps/aiworker-hr/{skills → engine-assets/skills}/interview-brief/SKILL.md +0 -0
  34. /package/official-apps/aiworker-hr/{skills → engine-assets/skills}/profile-update-proposal/SKILL.md +0 -0
  35. /package/official-apps/aiworker-hr/{src → host-adapter}/api.ts +0 -0
  36. /package/official-apps/aiworker-hr/{src → host-adapter}/protocol/artifact.ts +0 -0
  37. /package/official-apps/aiworker-hr/{src → host-adapter}/protocol/connectors.ts +0 -0
  38. /package/official-apps/aiworker-hr/{src → host-adapter}/protocol/lifecycle.ts +0 -0
  39. /package/official-apps/aiworker-hr/{src → host-adapter}/protocol/review.ts +0 -0
  40. /package/official-apps/aiworker-hr/{src → host-adapter}/protocol/runtime.ts +0 -0
  41. /package/official-apps/aiworker-hr/{src → host-adapter}/protocol/ui.ts +0 -0
  42. /package/official-apps/aiworker-hr/{schemas → product/artifacts/schemas}/candidate-screen.schema.json +0 -0
  43. /package/official-apps/aiworker-hr/{schemas → product/artifacts/schemas}/person-profile.schema.json +0 -0
  44. /package/official-apps/aiworker-hr/{packs → product/profiles}/hr-recruiting/SOUL.md +0 -0
  45. /package/official-apps/aiworker-hr/{review → product/reviews}/candidate-screen.md +0 -0
  46. /package/official-apps/aiworker-hr/{review → product/reviews}/person-profile.md +0 -0
  47. /package/official-apps/aiworker-hr/{src/ui → product/web/artifact-previews}/candidate-screen-preview.tsx +0 -0
  48. /package/official-apps/aiworker-hr/{src/ui → product/web/artifact-previews}/person-profile-preview.tsx +0 -0
  49. /package/official-apps/aiworker-hr/{src/ui → product/web/panels}/profile-panel.tsx +0 -0
  50. /package/official-apps/aiworker-hr/{src/ui → product/web/panels}/review-panel.tsx +0 -0
  51. /package/official-apps/aiworker-hr/{src/ui → product/web/routes}/hr-route.tsx +0 -0
  52. /package/official-apps/aiworker-hr/{src/ui → product/web/widgets}/people-widget.tsx +0 -0
  53. /package/official-apps/aiworker-hr/{capabilities → product/workflows}/candidate-screen/prompt.md +0 -0
  54. /package/official-apps/aiworker-hr/{capabilities → product/workflows}/candidate-screen/review.md +0 -0
  55. /package/official-apps/aiworker-hr/{capabilities → product/workflows}/person-profile/prompt.md +0 -0
  56. /package/official-apps/aiworker-hr/{capabilities → product/workflows}/person-profile/review.md +0 -0
  57. /package/official-apps/aiworker-qa/{src → host-adapter}/api.ts +0 -0
  58. /package/official-apps/aiworker-qa/{src → host-adapter}/protocol/artifact.ts +0 -0
  59. /package/official-apps/aiworker-qa/{src → host-adapter}/protocol/connectors.ts +0 -0
  60. /package/official-apps/aiworker-qa/{src → host-adapter}/protocol/lifecycle.ts +0 -0
  61. /package/official-apps/aiworker-qa/{src → host-adapter}/protocol/review.ts +0 -0
  62. /package/official-apps/aiworker-qa/{src → host-adapter}/protocol/runtime.ts +0 -0
  63. /package/official-apps/aiworker-qa/{src → host-adapter}/protocol/ui.ts +0 -0
  64. /package/official-apps/aiworker-qa/{schemas → product/artifacts/schemas}/regression-matrix.schema.json +0 -0
  65. /package/official-apps/aiworker-qa/{schemas → product/artifacts/schemas}/release-gate.schema.json +0 -0
  66. /package/official-apps/aiworker-qa/{packs → product/profiles}/qa-reviewer/SOUL.md +0 -0
  67. /package/official-apps/aiworker-qa/{review → product/reviews}/regression-matrix.md +0 -0
  68. /package/official-apps/aiworker-qa/{review → product/reviews}/release-gate.md +0 -0
  69. /package/official-apps/aiworker-qa/{src/ui → product/web/artifact-previews}/regression-matrix-preview.tsx +0 -0
  70. /package/official-apps/aiworker-qa/{src/ui → product/web/artifact-previews}/release-gate-preview.tsx +0 -0
  71. /package/official-apps/aiworker-qa/{src/ui → product/web/panels}/release-panel.tsx +0 -0
  72. /package/official-apps/aiworker-qa/{src/ui → product/web/panels}/release-review-panel.tsx +0 -0
  73. /package/official-apps/aiworker-qa/{src/ui → product/web/panels}/review-panel.tsx +0 -0
  74. /package/official-apps/aiworker-qa/{src/ui → product/web/routes}/qa-route.tsx +0 -0
  75. /package/official-apps/aiworker-qa/{src/ui → product/web/widgets}/release-widget.tsx +0 -0
  76. /package/official-apps/aiworker-qa/{capabilities → product/workflows}/regression-matrix/prompt.md +0 -0
  77. /package/official-apps/aiworker-qa/{capabilities → product/workflows}/regression-matrix/review.md +0 -0
  78. /package/official-apps/aiworker-qa/{capabilities → product/workflows}/release-gate/prompt.md +0 -0
  79. /package/official-apps/aiworker-qa/{capabilities → product/workflows}/release-gate/review.md +0 -0
@@ -13282,6 +13282,48 @@ var soulAppUiContributionKindSchema = exports_external.enum([
13282
13282
  var soulAppMountedSurfaceRendererSchema = exports_external.enum(["host-descriptor", "sandboxed-frame", "trusted-module"]);
13283
13283
  var soulAppMountedSurfaceScopeSchema = exports_external.enum(["app", "workspace", "session", "artifact", "review"]);
13284
13284
  var soulAppRequiredPermissionSchema = exports_external.string().regex(REQUIRED_PERMISSION_RE, "requiredPermissions must use kind:action:target");
13285
+ var soulAppEngineTargetSchema = exports_external.enum(["codex", "claude-code"]);
13286
+ var soulAppEngineAssetSourceSchema = exports_external.string().min(1);
13287
+ var soulAppWorkspaceEngineAssetsSchema = exports_external.object({
13288
+ source: soulAppEngineAssetSourceSchema
13289
+ });
13290
+ var soulAppSkillEngineAssetsSchema = exports_external.object({
13291
+ source: soulAppEngineAssetSourceSchema,
13292
+ targets: exports_external.array(soulAppEngineTargetSchema).min(1).readonly()
13293
+ });
13294
+ var soulAppMcpClientEngineAssetsSchema = exports_external.object({
13295
+ source: soulAppEngineAssetSourceSchema,
13296
+ target: soulAppEngineTargetSchema
13297
+ });
13298
+ var soulAppMcpServerTransportSchema = exports_external.enum(["stdio", "http"]);
13299
+ var soulAppMcpServerEngineAssetsSchema = exports_external.object({
13300
+ id: soulAppIdSchema,
13301
+ package: exports_external.string().min(1),
13302
+ requiredPermissions: exports_external.array(soulAppRequiredPermissionSchema).readonly().optional(),
13303
+ transport: soulAppMcpServerTransportSchema
13304
+ });
13305
+ var soulAppEngineAssetsSchema = exports_external.object({
13306
+ mcpClients: exports_external.array(soulAppMcpClientEngineAssetsSchema).readonly().optional(),
13307
+ mcpServers: exports_external.array(soulAppMcpServerEngineAssetsSchema).readonly().optional(),
13308
+ skills: soulAppSkillEngineAssetsSchema.optional(),
13309
+ workspace: soulAppWorkspaceEngineAssetsSchema
13310
+ });
13311
+ var soulAppProjectionKindSchema = exports_external.enum(["workspace-file", "native-skill", "mcp-client"]);
13312
+ var soulAppProjectionReceiptEntrySchema = exports_external.object({
13313
+ appId: soulAppIdSchema,
13314
+ engineTarget: soulAppEngineTargetSchema.optional(),
13315
+ generatedAt: exports_external.string().min(1),
13316
+ kind: soulAppProjectionKindSchema,
13317
+ sha256: exports_external.string().regex(/^[a-f0-9]{64}$/),
13318
+ source: exports_external.string().min(1),
13319
+ target: exports_external.string().min(1)
13320
+ });
13321
+ var soulAppProjectionReceiptSchema = exports_external.object({
13322
+ appId: soulAppIdSchema,
13323
+ generatedAt: exports_external.string().min(1),
13324
+ projections: exports_external.array(soulAppProjectionReceiptEntrySchema).readonly(),
13325
+ version: exports_external.literal(1)
13326
+ });
13285
13327
  var soulAppMountedSurfaceSchema = exports_external.object({
13286
13328
  entry: exports_external.string().regex(ROUTE_RE, "surface entry must be an absolute mounted service route"),
13287
13329
  renderer: soulAppMountedSurfaceRendererSchema,
@@ -13413,6 +13455,7 @@ var soulAppManifestSchema = exports_external.object({
13413
13455
  compatibility: soulAppCompatibilitySchema,
13414
13456
  connectors: soulAppConnectorsSchema,
13415
13457
  description: exports_external.string().min(1),
13458
+ engineAssets: soulAppEngineAssetsSchema,
13416
13459
  exports: soulAppExportsSchema,
13417
13460
  healthcheck: soulAppHealthcheckSchema,
13418
13461
  id: soulAppIdSchema,
@@ -13461,6 +13504,8 @@ var soulAppManifestIssueCodeSchema = exports_external.enum([
13461
13504
  "unsafe_local_service_url",
13462
13505
  "unsafe_permission_request",
13463
13506
  "unsafe_ui_surface",
13507
+ "unsafe_engine_asset_source",
13508
+ "unsafe_mcp_server_package",
13464
13509
  "missing_ui_api_entry",
13465
13510
  "invalid_artifact_schema",
13466
13511
  "namespace_collision"
@@ -13492,6 +13537,27 @@ function validateSoulAppManifest(input, options = {}) {
13492
13537
  }
13493
13538
  const manifest = parsed.data;
13494
13539
  const issues = [];
13540
+ for (const source of engineAssetSources(manifest)) {
13541
+ if (!source.value.startsWith("./") || source.value.includes("..")) {
13542
+ issues.push({
13543
+ code: "unsafe_engine_asset_source",
13544
+ message: "engine asset source must be a relative app-local path.",
13545
+ path: source.path,
13546
+ severity: "error"
13547
+ });
13548
+ }
13549
+ }
13550
+ for (const server of manifest.engineAssets.mcpServers ?? []) {
13551
+ const message = mcpServerPackageMessage(manifest, server.package);
13552
+ if (message) {
13553
+ issues.push({
13554
+ code: "unsafe_mcp_server_package",
13555
+ message,
13556
+ path: `engineAssets.mcpServers.${server.id}.package`,
13557
+ severity: "error"
13558
+ });
13559
+ }
13560
+ }
13495
13561
  if (options.hostVersion && !hostVersionSatisfies(options.hostVersion, manifest.compatibility.host)) {
13496
13562
  issues.push({
13497
13563
  code: "incompatible_host_version",
@@ -13684,6 +13750,25 @@ function unsafeSurfaceMessage(surface) {
13684
13750
  return "sandboxed-frame surfaces must use a /frames/* mounted service entry.";
13685
13751
  return null;
13686
13752
  }
13753
+ function mcpServerPackageMessage(manifest, packageName) {
13754
+ const packagePart = packageName.includes("/") ? packageName.split("/").at(-1) : packageName;
13755
+ const genericMcpPackage = /^(?:[a-z][a-z0-9]*-)*mcp-[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(packagePart);
13756
+ if (!genericMcpPackage)
13757
+ return "MCP server packages must use a generic mcp-* package name, for example @zonease/aiworker-mcp-ats.";
13758
+ if (packagePart.includes(manifest.id))
13759
+ return "MCP server packages must not be private to a Soul App id.";
13760
+ return null;
13761
+ }
13762
+ function engineAssetSources(manifest) {
13763
+ return [
13764
+ { path: "engineAssets.workspace.source", value: manifest.engineAssets.workspace.source },
13765
+ ...manifest.engineAssets.skills ? [{ path: "engineAssets.skills.source", value: manifest.engineAssets.skills.source }] : [],
13766
+ ...(manifest.engineAssets.mcpClients ?? []).map((client, index) => ({
13767
+ path: `engineAssets.mcpClients.${index}.source`,
13768
+ value: client.source
13769
+ }))
13770
+ ];
13771
+ }
13687
13772
  function manifestUiContributions(manifest) {
13688
13773
  return [
13689
13774
  ...manifest.ui.routes.map((route, index) => ({ path: `ui.routes.${index}`, surface: route.surface })),
@@ -13701,7 +13786,7 @@ var QA_REGRESSION_MATRIX_SCHEMA_HASH = "6a4f3494764431e8785a82865215eabc4c4678df
13701
13786
  var QA_RELEASE_GATE_SCHEMA_HASH = "0c953a3453ff235c419600073c70c1f155976f448c4567711b511d83668a09e4";
13702
13787
  var hrSoulAppManifest = soulAppManifestSchema.parse({
13703
13788
  api: {
13704
- entry: "./src/api.ts",
13789
+ entry: "./host-adapter/api.ts",
13705
13790
  routePrefix: "/api/local/apps/aiworker-hr"
13706
13791
  },
13707
13792
  artifactTypes: [
@@ -13709,9 +13794,9 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
13709
13794
  description: "Source-backed HR lifecycle profile.",
13710
13795
  id: "person-profile",
13711
13796
  name: "Person Profile",
13712
- previewRef: "./src/ui/person-profile-preview.tsx",
13713
- reviewPolicyRef: "./review/person-profile.md",
13714
- schemaRef: "./schemas/person-profile.schema.json",
13797
+ previewRef: "./product/web/artifact-previews/person-profile-preview.tsx",
13798
+ reviewPolicyRef: "./product/reviews/person-profile.md",
13799
+ schemaRef: "./product/artifacts/schemas/person-profile.schema.json",
13715
13800
  schemaSha256: HR_PERSON_PROFILE_SCHEMA_HASH,
13716
13801
  version: "0.1.0"
13717
13802
  },
@@ -13719,9 +13804,9 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
13719
13804
  description: "Role-related candidate screen with missing evidence and risks.",
13720
13805
  id: "candidate-screen",
13721
13806
  name: "Candidate Screen",
13722
- previewRef: "./src/ui/candidate-screen-preview.tsx",
13723
- reviewPolicyRef: "./review/candidate-screen.md",
13724
- schemaRef: "./schemas/candidate-screen.schema.json",
13807
+ previewRef: "./product/web/artifact-previews/candidate-screen-preview.tsx",
13808
+ reviewPolicyRef: "./product/reviews/candidate-screen.md",
13809
+ schemaRef: "./product/artifacts/schemas/candidate-screen.schema.json",
13725
13810
  schemaSha256: HR_CANDIDATE_SCREEN_SCHEMA_HASH,
13726
13811
  version: "0.1.0"
13727
13812
  }
@@ -13734,8 +13819,8 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
13734
13819
  name: "Person Profile",
13735
13820
  outputKind: "person-profile",
13736
13821
  packRefs: [],
13737
- promptRef: "./capabilities/person-profile/prompt.md",
13738
- reviewRubricRef: "./capabilities/person-profile/review.md",
13822
+ promptRef: "./product/workflows/person-profile/prompt.md",
13823
+ reviewRubricRef: "./product/workflows/person-profile/review.md",
13739
13824
  version: "0.1.0",
13740
13825
  workspaceTypes: ["people-profile"]
13741
13826
  },
@@ -13746,8 +13831,8 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
13746
13831
  name: "Candidate Screen",
13747
13832
  outputKind: "candidate-screen",
13748
13833
  packRefs: [],
13749
- promptRef: "./capabilities/candidate-screen/prompt.md",
13750
- reviewRubricRef: "./capabilities/candidate-screen/review.md",
13834
+ promptRef: "./product/workflows/candidate-screen/prompt.md",
13835
+ reviewRubricRef: "./product/workflows/candidate-screen/review.md",
13751
13836
  version: "0.1.0",
13752
13837
  workspaceTypes: ["role-search", "candidate"]
13753
13838
  }
@@ -13775,13 +13860,22 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
13775
13860
  ]
13776
13861
  },
13777
13862
  description: "People operations Soul App for profiles, recruiting evidence, lifecycle touchpoints, and HR review policy.",
13863
+ engineAssets: {
13864
+ skills: {
13865
+ source: "./engine-assets/skills",
13866
+ targets: ["codex", "claude-code"]
13867
+ },
13868
+ workspace: {
13869
+ source: "./engine-assets/workspace"
13870
+ }
13871
+ },
13778
13872
  exports: {
13779
- artifact: "./src/protocol/artifact.ts",
13780
- connector: "./src/protocol/connectors.ts",
13781
- lifecycle: "./src/protocol/lifecycle.ts",
13782
- review: "./src/protocol/review.ts",
13783
- runtime: "./src/protocol/runtime.ts",
13784
- ui: "./src/protocol/ui.ts"
13873
+ artifact: "./host-adapter/protocol/artifact.ts",
13874
+ connector: "./host-adapter/protocol/connectors.ts",
13875
+ lifecycle: "./host-adapter/protocol/lifecycle.ts",
13876
+ review: "./host-adapter/protocol/review.ts",
13877
+ runtime: "./host-adapter/protocol/runtime.ts",
13878
+ ui: "./host-adapter/protocol/ui.ts"
13785
13879
  },
13786
13880
  healthcheck: {
13787
13881
  kind: "protocol-handler",
@@ -13794,13 +13888,13 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
13794
13888
  namespace: "aiworker-hr"
13795
13889
  },
13796
13890
  modes: {
13797
- hostMounted: { entry: "./src/host-mounted.ts", supported: true },
13798
- standalone: { entry: "./src/standalone.ts", supported: true }
13891
+ hostMounted: { entry: "./host-adapter/mounted/host-mounted.ts", supported: true },
13892
+ standalone: { entry: "./host-adapter/standalone/standalone.ts", supported: true }
13799
13893
  },
13800
13894
  name: "AIWorker HR",
13801
13895
  pack: {
13802
13896
  refs: [
13803
- { id: "hr-recruiting", ref: "packs/hr-recruiting/SOUL.md", source: "embedded", version: "0.1.0" }
13897
+ { id: "hr-recruiting", ref: "product/profiles/hr-recruiting/SOUL.md", source: "embedded", version: "0.1.0" }
13804
13898
  ]
13805
13899
  },
13806
13900
  permissions: [
@@ -13882,7 +13976,7 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
13882
13976
  ui: {
13883
13977
  artifactPreviews: [
13884
13978
  {
13885
- entry: "./src/ui/person-profile-preview.tsx",
13979
+ entry: "./product/web/artifact-previews/person-profile-preview.tsx",
13886
13980
  id: "person-profile-preview",
13887
13981
  label: "Person profile preview",
13888
13982
  slot: "artifact-preview",
@@ -13891,7 +13985,7 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
13891
13985
  ],
13892
13986
  panels: [
13893
13987
  {
13894
- entry: "./src/ui/profile-panel.tsx",
13988
+ entry: "./product/web/panels/profile-panel.tsx",
13895
13989
  id: "hr-profile-panel",
13896
13990
  label: "Profile panel",
13897
13991
  slot: "panel",
@@ -13905,7 +13999,7 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
13905
13999
  ],
13906
14000
  reviewPanels: [
13907
14001
  {
13908
- entry: "./src/ui/review-panel.tsx",
14002
+ entry: "./product/web/panels/review-panel.tsx",
13909
14003
  id: "hr-review-panel",
13910
14004
  label: "HR review panel",
13911
14005
  slot: "review-panel"
@@ -13913,7 +14007,7 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
13913
14007
  ],
13914
14008
  routes: [
13915
14009
  {
13916
- entry: "./src/ui/hr-route.tsx",
14010
+ entry: "./product/web/routes/hr-route.tsx",
13917
14011
  id: "hr-home",
13918
14012
  label: "HR",
13919
14013
  path: "/hr",
@@ -13965,7 +14059,7 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
13965
14059
  },
13966
14060
  workspaceWidgets: [
13967
14061
  {
13968
- entry: "./src/ui/people-widget.tsx",
14062
+ entry: "./product/web/widgets/people-widget.tsx",
13969
14063
  id: "hr-people-widget",
13970
14064
  label: "People widget",
13971
14065
  slot: "workspace-widget",
@@ -14005,7 +14099,7 @@ var hrSoulAppManifest = soulAppManifestSchema.parse({
14005
14099
  });
14006
14100
  var qaSoulAppManifest = soulAppManifestSchema.parse({
14007
14101
  api: {
14008
- entry: "./src/api.ts",
14102
+ entry: "./host-adapter/api.ts",
14009
14103
  routePrefix: "/api/local/apps/aiworker-qa"
14010
14104
  },
14011
14105
  artifactTypes: [
@@ -14013,9 +14107,9 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
14013
14107
  description: "Coverage matrix mapped to release risk.",
14014
14108
  id: "regression-matrix",
14015
14109
  name: "Regression Matrix",
14016
- previewRef: "./src/ui/regression-matrix-preview.tsx",
14017
- reviewPolicyRef: "./review/regression-matrix.md",
14018
- schemaRef: "./schemas/regression-matrix.schema.json",
14110
+ previewRef: "./product/web/artifact-previews/regression-matrix-preview.tsx",
14111
+ reviewPolicyRef: "./product/reviews/regression-matrix.md",
14112
+ schemaRef: "./product/artifacts/schemas/regression-matrix.schema.json",
14019
14113
  schemaSha256: QA_REGRESSION_MATRIX_SCHEMA_HASH,
14020
14114
  version: "0.1.0"
14021
14115
  },
@@ -14023,9 +14117,9 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
14023
14117
  description: "Go/no-go release readiness artifact.",
14024
14118
  id: "release-gate",
14025
14119
  name: "Release Gate",
14026
- previewRef: "./src/ui/release-gate-preview.tsx",
14027
- reviewPolicyRef: "./review/release-gate.md",
14028
- schemaRef: "./schemas/release-gate.schema.json",
14120
+ previewRef: "./product/web/artifact-previews/release-gate-preview.tsx",
14121
+ reviewPolicyRef: "./product/reviews/release-gate.md",
14122
+ schemaRef: "./product/artifacts/schemas/release-gate.schema.json",
14029
14123
  schemaSha256: QA_RELEASE_GATE_SCHEMA_HASH,
14030
14124
  version: "0.1.0"
14031
14125
  }
@@ -14038,8 +14132,8 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
14038
14132
  name: "Regression Matrix",
14039
14133
  outputKind: "regression-matrix",
14040
14134
  packRefs: [],
14041
- promptRef: "./capabilities/regression-matrix/prompt.md",
14042
- reviewRubricRef: "./capabilities/regression-matrix/review.md",
14135
+ promptRef: "./product/workflows/regression-matrix/prompt.md",
14136
+ reviewRubricRef: "./product/workflows/regression-matrix/review.md",
14043
14137
  version: "0.1.0",
14044
14138
  workspaceTypes: ["release", "test-suite"]
14045
14139
  },
@@ -14050,8 +14144,8 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
14050
14144
  name: "Release Gate",
14051
14145
  outputKind: "release-gate",
14052
14146
  packRefs: [],
14053
- promptRef: "./capabilities/release-gate/prompt.md",
14054
- reviewRubricRef: "./capabilities/release-gate/review.md",
14147
+ promptRef: "./product/workflows/release-gate/prompt.md",
14148
+ reviewRubricRef: "./product/workflows/release-gate/review.md",
14055
14149
  version: "0.1.0",
14056
14150
  workspaceTypes: ["release"]
14057
14151
  }
@@ -14079,13 +14173,22 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
14079
14173
  ]
14080
14174
  },
14081
14175
  description: "Quality Soul App for release workspaces, regression evidence, defect triage, and release gate review.",
14176
+ engineAssets: {
14177
+ skills: {
14178
+ source: "./engine-assets/skills",
14179
+ targets: ["codex", "claude-code"]
14180
+ },
14181
+ workspace: {
14182
+ source: "./engine-assets/workspace"
14183
+ }
14184
+ },
14082
14185
  exports: {
14083
- artifact: "./src/protocol/artifact.ts",
14084
- connector: "./src/protocol/connectors.ts",
14085
- lifecycle: "./src/protocol/lifecycle.ts",
14086
- review: "./src/protocol/review.ts",
14087
- runtime: "./src/protocol/runtime.ts",
14088
- ui: "./src/protocol/ui.ts"
14186
+ artifact: "./host-adapter/protocol/artifact.ts",
14187
+ connector: "./host-adapter/protocol/connectors.ts",
14188
+ lifecycle: "./host-adapter/protocol/lifecycle.ts",
14189
+ review: "./host-adapter/protocol/review.ts",
14190
+ runtime: "./host-adapter/protocol/runtime.ts",
14191
+ ui: "./host-adapter/protocol/ui.ts"
14089
14192
  },
14090
14193
  healthcheck: {
14091
14194
  kind: "protocol-handler",
@@ -14098,13 +14201,13 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
14098
14201
  namespace: "aiworker-qa"
14099
14202
  },
14100
14203
  modes: {
14101
- hostMounted: { entry: "./src/host-mounted.ts", supported: true },
14102
- standalone: { entry: "./src/standalone.ts", supported: true }
14204
+ hostMounted: { entry: "./host-adapter/mounted/host-mounted.ts", supported: true },
14205
+ standalone: { entry: "./host-adapter/standalone/standalone.ts", supported: true }
14103
14206
  },
14104
14207
  name: "AIWorker QA",
14105
14208
  pack: {
14106
14209
  refs: [
14107
- { id: "qa-reviewer", ref: "packs/qa-reviewer/SOUL.md", source: "embedded", version: "0.1.0" }
14210
+ { id: "qa-reviewer", ref: "product/profiles/qa-reviewer/SOUL.md", source: "embedded", version: "0.1.0" }
14108
14211
  ]
14109
14212
  },
14110
14213
  permissions: [
@@ -14186,7 +14289,7 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
14186
14289
  ui: {
14187
14290
  artifactPreviews: [
14188
14291
  {
14189
- entry: "./src/ui/release-gate-preview.tsx",
14292
+ entry: "./product/web/artifact-previews/release-gate-preview.tsx",
14190
14293
  id: "release-gate-preview",
14191
14294
  label: "Release gate preview",
14192
14295
  slot: "artifact-preview",
@@ -14195,7 +14298,7 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
14195
14298
  ],
14196
14299
  panels: [
14197
14300
  {
14198
- entry: "./src/ui/release-panel.tsx",
14301
+ entry: "./product/web/panels/release-panel.tsx",
14199
14302
  id: "qa-release-panel",
14200
14303
  label: "Release panel",
14201
14304
  slot: "panel",
@@ -14209,7 +14312,7 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
14209
14312
  ],
14210
14313
  reviewPanels: [
14211
14314
  {
14212
- entry: "./src/ui/review-panel.tsx",
14315
+ entry: "./product/web/panels/review-panel.tsx",
14213
14316
  id: "qa-review-panel",
14214
14317
  label: "QA review panel",
14215
14318
  slot: "review-panel"
@@ -14217,7 +14320,7 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
14217
14320
  ],
14218
14321
  routes: [
14219
14322
  {
14220
- entry: "./src/ui/qa-route.tsx",
14323
+ entry: "./product/web/routes/qa-route.tsx",
14221
14324
  id: "qa-home",
14222
14325
  label: "QA",
14223
14326
  path: "/qa",
@@ -14262,7 +14365,7 @@ var qaSoulAppManifest = soulAppManifestSchema.parse({
14262
14365
  },
14263
14366
  workspaceWidgets: [
14264
14367
  {
14265
- entry: "./src/ui/release-widget.tsx",
14368
+ entry: "./product/web/widgets/release-widget.tsx",
14266
14369
  id: "qa-release-widget",
14267
14370
  label: "Release widget",
14268
14371
  slot: "workspace-widget",
@@ -14912,11 +15015,11 @@ function queryString(input, seed = {}) {
14912
15015
  // soul-app.manifest.json
14913
15016
  var soul_app_manifest_default = {
14914
15017
  api: {
14915
- entry: "./src/api.ts",
15018
+ entry: "./host-adapter/api.ts",
14916
15019
  localService: {
14917
15020
  command: [
14918
15021
  "bun",
14919
- "src/host-mounted.ts"
15022
+ "host-adapter/mounted/host-mounted.ts"
14920
15023
  ],
14921
15024
  healthPath: "/health"
14922
15025
  },
@@ -14927,9 +15030,9 @@ var soul_app_manifest_default = {
14927
15030
  description: "Source-backed HR lifecycle profile.",
14928
15031
  id: "person-profile",
14929
15032
  name: "Person Profile",
14930
- previewRef: "./src/ui/person-profile-preview.tsx",
14931
- reviewPolicyRef: "./review/person-profile.md",
14932
- schemaRef: "./schemas/person-profile.schema.json",
15033
+ previewRef: "./product/web/artifact-previews/person-profile-preview.tsx",
15034
+ reviewPolicyRef: "./product/reviews/person-profile.md",
15035
+ schemaRef: "./product/artifacts/schemas/person-profile.schema.json",
14933
15036
  schemaSha256: "35c14e3d4c0fe9fd95c87e9bc47a210e21f99bcb1b079aa99a95bb93e820c8ab",
14934
15037
  version: "0.1.0"
14935
15038
  },
@@ -14937,9 +15040,9 @@ var soul_app_manifest_default = {
14937
15040
  description: "Role-related candidate screen with missing evidence and risks.",
14938
15041
  id: "candidate-screen",
14939
15042
  name: "Candidate Screen",
14940
- previewRef: "./src/ui/candidate-screen-preview.tsx",
14941
- reviewPolicyRef: "./review/candidate-screen.md",
14942
- schemaRef: "./schemas/candidate-screen.schema.json",
15043
+ previewRef: "./product/web/artifact-previews/candidate-screen-preview.tsx",
15044
+ reviewPolicyRef: "./product/reviews/candidate-screen.md",
15045
+ schemaRef: "./product/artifacts/schemas/candidate-screen.schema.json",
14943
15046
  schemaSha256: "e8bd207be63eab23073cd47e41092f1d753c38d609383206e94334dd984b309c",
14944
15047
  version: "0.1.0"
14945
15048
  }
@@ -14954,8 +15057,8 @@ var soul_app_manifest_default = {
14954
15057
  name: "Person Profile",
14955
15058
  outputKind: "person-profile",
14956
15059
  packRefs: [],
14957
- promptRef: "./capabilities/person-profile/prompt.md",
14958
- reviewRubricRef: "./capabilities/person-profile/review.md",
15060
+ promptRef: "./product/workflows/person-profile/prompt.md",
15061
+ reviewRubricRef: "./product/workflows/person-profile/review.md",
14959
15062
  version: "0.1.0",
14960
15063
  workspaceTypes: [
14961
15064
  "people-profile"
@@ -14970,8 +15073,8 @@ var soul_app_manifest_default = {
14970
15073
  name: "Candidate Screen",
14971
15074
  outputKind: "candidate-screen",
14972
15075
  packRefs: [],
14973
- promptRef: "./capabilities/candidate-screen/prompt.md",
14974
- reviewRubricRef: "./capabilities/candidate-screen/review.md",
15076
+ promptRef: "./product/workflows/candidate-screen/prompt.md",
15077
+ reviewRubricRef: "./product/workflows/candidate-screen/review.md",
14975
15078
  version: "0.1.0",
14976
15079
  workspaceTypes: [
14977
15080
  "role-search",
@@ -15015,13 +15118,25 @@ var soul_app_manifest_default = {
15015
15118
  ]
15016
15119
  },
15017
15120
  description: "People operations Soul App for profiles, recruiting evidence, lifecycle touchpoints, and HR review policy.",
15121
+ engineAssets: {
15122
+ skills: {
15123
+ source: "./engine-assets/skills",
15124
+ targets: [
15125
+ "codex",
15126
+ "claude-code"
15127
+ ]
15128
+ },
15129
+ workspace: {
15130
+ source: "./engine-assets/workspace"
15131
+ }
15132
+ },
15018
15133
  exports: {
15019
- artifact: "./src/protocol/artifact.ts",
15020
- connector: "./src/protocol/connectors.ts",
15021
- lifecycle: "./src/protocol/lifecycle.ts",
15022
- review: "./src/protocol/review.ts",
15023
- runtime: "./src/protocol/runtime.ts",
15024
- ui: "./src/protocol/ui.ts"
15134
+ artifact: "./host-adapter/protocol/artifact.ts",
15135
+ connector: "./host-adapter/protocol/connectors.ts",
15136
+ lifecycle: "./host-adapter/protocol/lifecycle.ts",
15137
+ review: "./host-adapter/protocol/review.ts",
15138
+ runtime: "./host-adapter/protocol/runtime.ts",
15139
+ ui: "./host-adapter/protocol/ui.ts"
15025
15140
  },
15026
15141
  healthcheck: {
15027
15142
  kind: "protocol-handler",
@@ -15035,11 +15150,11 @@ var soul_app_manifest_default = {
15035
15150
  },
15036
15151
  modes: {
15037
15152
  hostMounted: {
15038
- entry: "./src/host-mounted.ts",
15153
+ entry: "./host-adapter/mounted/host-mounted.ts",
15039
15154
  supported: true
15040
15155
  },
15041
15156
  standalone: {
15042
- entry: "./src/standalone.ts",
15157
+ entry: "./host-adapter/standalone/standalone.ts",
15043
15158
  supported: true
15044
15159
  }
15045
15160
  },
@@ -15048,7 +15163,7 @@ var soul_app_manifest_default = {
15048
15163
  refs: [
15049
15164
  {
15050
15165
  id: "hr-recruiting",
15051
- ref: "packs/hr-recruiting/SOUL.md",
15166
+ ref: "product/profiles/hr-recruiting/SOUL.md",
15052
15167
  source: "embedded",
15053
15168
  version: "0.1.0"
15054
15169
  }
@@ -15136,7 +15251,7 @@ var soul_app_manifest_default = {
15136
15251
  ui: {
15137
15252
  artifactPreviews: [
15138
15253
  {
15139
- entry: "./src/ui/person-profile-preview.tsx",
15254
+ entry: "./product/web/artifact-previews/person-profile-preview.tsx",
15140
15255
  id: "person-profile-preview",
15141
15256
  label: "Person profile preview",
15142
15257
  slot: "artifact-preview",
@@ -15145,7 +15260,7 @@ var soul_app_manifest_default = {
15145
15260
  ],
15146
15261
  panels: [
15147
15262
  {
15148
- entry: "./src/ui/profile-panel.tsx",
15263
+ entry: "./product/web/panels/profile-panel.tsx",
15149
15264
  id: "hr-profile-panel",
15150
15265
  label: "Profile panel",
15151
15266
  slot: "panel",
@@ -15161,7 +15276,7 @@ var soul_app_manifest_default = {
15161
15276
  ],
15162
15277
  reviewPanels: [
15163
15278
  {
15164
- entry: "./src/ui/review-panel.tsx",
15279
+ entry: "./product/web/panels/review-panel.tsx",
15165
15280
  id: "hr-review-panel",
15166
15281
  label: "HR review panel",
15167
15282
  slot: "review-panel"
@@ -15169,7 +15284,7 @@ var soul_app_manifest_default = {
15169
15284
  ],
15170
15285
  routes: [
15171
15286
  {
15172
- entry: "./src/ui/hr-route.tsx",
15287
+ entry: "./product/web/routes/hr-route.tsx",
15173
15288
  id: "hr-home",
15174
15289
  label: "HR",
15175
15290
  path: "/hr",
@@ -15223,7 +15338,7 @@ var soul_app_manifest_default = {
15223
15338
  },
15224
15339
  workspaceWidgets: [
15225
15340
  {
15226
- entry: "./src/ui/people-widget.tsx",
15341
+ entry: "./product/web/widgets/people-widget.tsx",
15227
15342
  id: "hr-people-widget",
15228
15343
  label: "People widget",
15229
15344
  slot: "workspace-widget",
@@ -15274,13 +15389,13 @@ var soul_app_manifest_default = {
15274
15389
  ]
15275
15390
  };
15276
15391
 
15277
- // src/index.ts
15392
+ // host-adapter/index.ts
15278
15393
  var hrSoulAppManifest2 = createSoulAppManifest(soul_app_manifest_default);
15279
15394
  var HR_REFERENCE_APP_BOUNDARY = {
15280
- hostMountedEntry: "./src/host-mounted.ts",
15395
+ hostMountedEntry: "./host-adapter/mounted/host-mounted.ts",
15281
15396
  packageName: "@zonease/aiworker-hr",
15282
15397
  primaryWorkbench: "People/Profile Workbench",
15283
- standaloneEntry: "./src/standalone.ts"
15398
+ standaloneEntry: "./host-adapter/standalone/standalone.ts"
15284
15399
  };
15285
15400
  var hrReferenceSoulApp = defineSoulApp({
15286
15401
  artifact: {