@zaip-ai/cli 1.4.3 → 2.0.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 (126) hide show
  1. package/dist/services/adapter-hook-sources.d.ts +1 -0
  2. package/dist/services/adapter-hook-sources.d.ts.map +1 -1
  3. package/dist/services/adapter-hook-sources.js +1 -0
  4. package/dist/services/adapter-hook-sources.js.map +1 -1
  5. package/dist/services/adapters.d.ts +1 -1
  6. package/dist/services/adapters.d.ts.map +1 -1
  7. package/dist/services/adapters.js +17 -4
  8. package/dist/services/adapters.js.map +1 -1
  9. package/dist/services/agent-adapters.d.ts +97 -34
  10. package/dist/services/agent-adapters.d.ts.map +1 -1
  11. package/dist/services/agent-adapters.js +260 -49
  12. package/dist/services/agent-adapters.js.map +1 -1
  13. package/dist/services/codex-conversation-lifecycle-hook.d.ts +2 -0
  14. package/dist/services/codex-conversation-lifecycle-hook.d.ts.map +1 -0
  15. package/dist/services/codex-conversation-lifecycle-hook.js +29 -0
  16. package/dist/services/codex-conversation-lifecycle-hook.js.map +1 -0
  17. package/dist/services/codex-pre-tool-hook-template.d.ts.map +1 -1
  18. package/dist/services/codex-pre-tool-hook-template.js +173 -0
  19. package/dist/services/codex-pre-tool-hook-template.js.map +1 -1
  20. package/dist/services/codex-subagent-hook-template.d.ts +1 -1
  21. package/dist/services/codex-subagent-hook-template.d.ts.map +1 -1
  22. package/dist/services/codex-subagent-hook-template.js +1 -1
  23. package/dist/services/doctor.js +2 -2
  24. package/dist/services/install-agents-template.d.ts.map +1 -1
  25. package/dist/services/install-agents-template.js +117 -5
  26. package/dist/services/install-agents-template.js.map +1 -1
  27. package/dist/services/logger.js +1 -1
  28. package/dist/services/logger.js.map +1 -1
  29. package/dist/services/logger.test.js +2 -2
  30. package/dist/services/stack-git.d.ts +3 -0
  31. package/dist/services/stack-git.d.ts.map +1 -1
  32. package/dist/services/stack-git.js +24 -3
  33. package/dist/services/stack-git.js.map +1 -1
  34. package/dist/services/template-manifest.d.ts.map +1 -1
  35. package/dist/services/template-manifest.js +3 -1
  36. package/dist/services/template-manifest.js.map +1 -1
  37. package/dist/services/transactional-files.d.ts +2 -1
  38. package/dist/services/transactional-files.d.ts.map +1 -1
  39. package/dist/services/transactional-files.js +8 -3
  40. package/dist/services/transactional-files.js.map +1 -1
  41. package/package.json +2 -2
  42. package/templates/.agents/README-ENG.md +718 -0
  43. package/templates/.agents/README.md +42 -42
  44. package/templates/.agents/architecture/hostinger-cloudflare-terraform.md +90 -0
  45. package/templates/.agents/config/autonomous-cloud-inputs.json +41 -0
  46. package/templates/.agents/dashboard/.zaip-managed.json +66 -46
  47. package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-oZVlf-l5.js → DashboardHelpDialog-CYfpYsTr.js} +1 -1
  48. package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-BYjVOHI_.js → TraceabilityWorkspace-DHDrd5rE.js} +1 -1
  49. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-BYbpmqmM.js +2 -0
  50. package/templates/.agents/dashboard/apps/frontend/dist/index.html +2 -2
  51. package/templates/.agents/dashboard/apps/frontend/index.html +1 -1
  52. package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
  53. package/templates/.agents/dashboard/apps/frontend/src/App.tsx +28 -9
  54. package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.test.ts +27 -0
  55. package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.ts +13 -29
  56. package/templates/.agents/dashboard/apps/frontend/src/dashboard-identity.test.ts +43 -0
  57. package/templates/.agents/dashboard/apps/frontend/src/dashboard-identity.ts +32 -0
  58. package/templates/.agents/dashboard/apps/frontend/src/dashboard-project-overview.ts +28 -0
  59. package/templates/.agents/dashboard/apps/frontend/src/project-settings.test.ts +2 -2
  60. package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
  61. package/templates/.agents/dashboard/modules/operations/package.json +1 -1
  62. package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
  63. package/templates/.agents/dashboard/modules/traceability/src/contracts.ts +1 -1
  64. package/templates/.agents/dashboard/packages/branding/package.json +1 -1
  65. package/templates/.agents/dashboard/packages/branding/src/index.ts +1 -1
  66. package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
  67. package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
  68. package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +162 -162
  69. package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +109 -109
  70. package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
  71. package/templates/.agents/dashboard/packages/local-runtime/server.mjs +166 -166
  72. package/templates/.agents/dashboard/packages/local-runtime/src/server-identity.test.ts +42 -0
  73. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.test.ts +41 -0
  74. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.ts +1 -0
  75. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot.test.ts +2 -2
  76. package/templates/.agents/dashboard/packages/local-runtime/src/server-sqlite-task-trace.ts +5 -2
  77. package/templates/.agents/dashboard/packages/local-runtime/src/server-workspace.ts +1 -1
  78. package/templates/.agents/dashboard/packages/local-runtime/src/server.test-fixtures.ts +1 -1
  79. package/templates/.agents/dashboard/packages/local-runtime/src/server.test.ts +1 -13
  80. package/templates/.agents/dashboard/packages/local-runtime/src/server.ts +11 -3
  81. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-incremental-refresh.test.ts +55 -0
  82. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-canonical.ts +9 -6
  83. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-source-fingerprint.test.ts +22 -0
  84. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-source-fingerprint.ts +10 -8
  85. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.test.ts +68 -2
  86. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.ts +39 -10
  87. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-snapshot-seed.test.ts +47 -42
  88. package/templates/.agents/dashboard/packages/ui/package.json +1 -1
  89. package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
  90. package/templates/.agents/design/.zaip-managed.json +41 -41
  91. package/templates/.agents/design/apps/catalog/package.json +1 -1
  92. package/templates/.agents/design/packages/local-runtime/package.json +1 -1
  93. package/templates/.agents/requirements/autonomous-assurance.md +1 -1
  94. package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
  95. package/templates/.agents/requirements/comparative-audit.md +1 -1
  96. package/templates/.agents/requirements/context-engine.md +1 -1
  97. package/templates/.agents/requirements/cost-observability.md +1 -1
  98. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  99. package/templates/.agents/requirements/data-export.md +1 -1
  100. package/templates/.agents/requirements/design-system.md +1 -1
  101. package/templates/.agents/requirements/execution-engine.md +1 -1
  102. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  103. package/templates/.agents/requirements/model-orchestration.md +1 -1
  104. package/templates/.agents/requirements/public-distribution.md +1 -1
  105. package/templates/.agents/requirements/software-architecture.md +1 -1
  106. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  107. package/templates/.agents/requirements/work-lifecycle.md +1 -1
  108. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  109. package/templates/.agents/runtime/VERSION +1 -1
  110. package/templates/.agents/runtime/bin/zaip.mjs +61 -23
  111. package/templates/.agents/runtime/checksums.sha256 +5 -5
  112. package/templates/.agents/runtime/manifest.json +1 -1
  113. package/templates/.agents/runtime/provenance.json +4 -4
  114. package/templates/.agents/runtime/sbom.cdx.json +1 -1
  115. package/templates/.agents/skills/zaip-aios/SKILL.md +4 -2
  116. package/templates/.agents/skills/zaip-skill-setup/SKILL.md +1 -1
  117. package/templates/.agents/zaip-aios/VERSION +1 -1
  118. package/templates/infra/terraform/terraform.tfvars.example +2 -1
  119. package/templates/template-manifest.json +136 -104
  120. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-ZJFXmK7m.js +0 -2
  121. /package/templates/.agents/{data → records}/changes/.gitkeep +0 -0
  122. /package/templates/.agents/{data → records}/executions/.gitkeep +0 -0
  123. /package/templates/.agents/{data → records}/prds/.gitkeep +0 -0
  124. /package/templates/.agents/{data → records}/runs/.gitkeep +0 -0
  125. /package/templates/.agents/{data → records}/specs/.gitkeep +0 -0
  126. /package/templates/.agents/{data → records}/tasks/.gitkeep +0 -0
@@ -1,41 +1,40 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { parse } from "yaml";
3
+ export const NATIVE_SUBAGENT_POLICY = "For Codex delegation, a ZAIP Sub-Run exists only when started with the native collaboration subagent mechanism (`spawn_agent`). `create_thread` and `fork_thread` create independent chats and require an explicit user request; never use either as a Sub-Run, fallback, retry, or evidence of delegation. If native delegation is unavailable, report the limitation rather than create an independent chat. A catalog name, task_name, title, or prompt never proves native ancestry. Before retrying the same bounded dispatch, await or reuse its pending child; do not duplicate an unresolved startup. Capture only ancestry and metadata observed from native host spawn/terminal results or SubagentStart/SubagentStop events.";
3
4
  export function parsePublicAgentCatalog(source) {
4
- const value = parse(source);
5
- if (value.schema_version !== 1 || !Array.isArray(value.agents) || !Array.isArray(value.squads)) {
5
+ const catalog = parse(source);
6
+ if (catalog?.schema_version !== 1 ||
7
+ !Array.isArray(catalog.agents) ||
8
+ !Array.isArray(catalog.squads)) {
6
9
  throw new Error("Invalid .agents/config/agents/catalog.yaml");
7
10
  }
8
- for (const agent of value.agents) {
9
- if (typeof agent.id !== "string" ||
10
- typeof agent.codex_name !== "string" ||
11
- typeof agent.codex_task_name !== "string" ||
12
- agent.codex_task_name !== `${agent.persona.nome}_${agent.persona.cargo}_zaip_agent` ||
13
- typeof agent.purpose !== "string" ||
14
- !isPersona(agent.persona) ||
15
- !Array.isArray(agent.nickname_candidates) ||
16
- agent.nickname_candidates.length !== 1 ||
17
- agent.nickname_candidates[0] !== agent.codex_task_name) {
18
- throw new Error("Agent catalog cannot generate native Codex profiles");
19
- }
20
- }
21
- return value;
22
- }
23
- function isPersona(value) {
24
- return (typeof value === "object" &&
25
- value !== null &&
26
- typeof value.nome === "string" &&
27
- typeof value.cargo === "string" &&
28
- /^[a-z0-9]+(?:_[a-z0-9]+)*$/.test(value.nome) &&
29
- /^[a-z0-9]+(?:_[a-z0-9]+)*$/.test(value.cargo));
11
+ validateGuidanceCatalog(catalog);
12
+ return catalog;
30
13
  }
31
14
  export function publicAgentAdapterFiles(catalog) {
15
+ return agentGuidanceFiles(catalog).map(({ path, content }) => ({ path, content }));
16
+ }
17
+ export function codexAgentConfig(catalog) {
18
+ const maxThreads = Math.max(1, ...catalog.squads.map((squad) => squad.max_parallelism));
19
+ const registrations = [...catalog.agents]
20
+ .sort(byId)
21
+ .map((agent) => `[agents.${JSON.stringify(agent.codex_name)}]\ndescription = ${JSON.stringify(agent.purpose)}\nconfig_file = ${JSON.stringify(`../.agents/config/clients/codex/agents/${agent.codex_name}.toml`)}\nnickname_candidates = [${agent.nickname_candidates.map((value) => JSON.stringify(value)).join(", ")}]`)
22
+ .join("\n\n");
23
+ return `[agents]\nmax_concurrent_threads_per_session = ${maxThreads}\nmax_depth = 2\njob_max_runtime_seconds = 1800\ninterrupt_message = true\n\n# zaip-managed begin agent-registrations\n${registrations}\n# zaip-managed end agent-registrations\n`;
24
+ }
25
+ export function agentGuidanceFiles(catalog) {
26
+ validateGuidanceCatalog(catalog);
32
27
  const files = [];
33
28
  for (const agent of [...catalog.agents].sort(byId)) {
34
29
  const payload = stableJson({ kind: "agent", schema_version: 1, definition: agent });
35
- const codexName = agent.codex_name;
30
+ const semanticHash = digest(payload);
36
31
  files.push({
37
- path: `.agents/config/clients/codex/agents/${codexName}.toml`,
32
+ client: "codex",
33
+ subject: agent.id,
34
+ projection: "canonical",
35
+ path: `.agents/config/clients/codex/agents/${agent.codex_name}.toml`,
38
36
  content: renderCodexAgent(agent, catalog, payload),
37
+ semantic_hash: semanticHash,
39
38
  });
40
39
  for (const alias of agent.compatibility?.aliases ?? []) {
41
40
  const shim = stableJson({
@@ -48,50 +47,190 @@ export function publicAgentAdapterFiles(catalog) {
48
47
  codex_task_name: agent.codex_task_name,
49
48
  },
50
49
  });
50
+ const subject = `alias:${alias.kind}:${alias.value}`;
51
51
  if (alias.kind === "id") {
52
52
  files.push({
53
+ client: "claude",
54
+ subject,
55
+ projection: "compatibility-shim",
53
56
  path: `.claude/agents/${alias.value}.md`,
54
57
  content: renderGuidance(alias.value, `Deprecated alias for ${agent.id}. Use ${agent.id}. Removal deadline: ${alias.remove_after}.`, shim),
58
+ semantic_hash: digest(shim),
55
59
  });
56
60
  }
57
61
  if (alias.kind === "codex_name") {
58
62
  files.push({
63
+ client: "codex",
64
+ subject,
65
+ projection: "compatibility-shim",
59
66
  path: `.agents/config/clients/codex/agents/${alias.value}.toml`,
60
67
  content: renderCodexAlias(agent, alias.value, alias.remove_after, shim),
68
+ semantic_hash: digest(shim),
61
69
  });
62
70
  }
63
71
  }
64
72
  files.push({
73
+ client: "claude",
74
+ subject: agent.id,
75
+ projection: "canonical",
65
76
  path: `.claude/agents/${agent.id}.md`,
66
77
  content: renderGuidance(agent.id, agent.purpose, payload),
78
+ semantic_hash: semanticHash,
67
79
  });
68
80
  }
69
81
  for (const squad of [...catalog.squads].sort(byId)) {
70
82
  const payload = stableJson({ kind: "squad", schema_version: 1, definition: squad });
71
- const content = renderGuidance(squad.id, squad.purpose, payload);
72
- files.push({ path: `.codex/squads/${squad.id}.md`, content });
73
- files.push({ path: `.claude/squads/${squad.id}.md`, content });
83
+ files.push(...clientFiles("squads", squad.id, renderGuidance(squad.id, squad.purpose, payload), digest(payload)));
74
84
  }
75
85
  return files;
76
86
  }
77
- function renderCodexAlias(agent, alias, removeAfter, payload) {
78
- const instructions = [
79
- `Deprecated Codex identity ${alias}.`,
80
- `Resolve to canonical catalog id ${agent.id} and Codex identity ${agent.codex_name}.`,
81
- `Persist only ${agent.id} in ZAIP Run records.`,
82
- `Removal deadline: ${removeAfter}.`,
83
- ].join("\n");
84
- return `# zaip-managed generated-do-not-edit source=agent-catalog schema=1 sha256=${digest(payload)}\nname = ${JSON.stringify(alias)}\ndescription = ${JSON.stringify(`Deprecated alias for ${agent.codex_name}`)}\nsandbox_mode = ${JSON.stringify(agent.write_scopes.length === 0 ? "read-only" : "workspace-write")}\ndeveloper_instructions = """\n${instructions.replaceAll('"""', '\\"\\"\\"')}\n"""\n`;
87
+ export function compareAgentGuidance(files) {
88
+ const drifted = [];
89
+ const paths = new Set();
90
+ const bySubject = new Map();
91
+ for (const file of files) {
92
+ if (paths.has(file.path))
93
+ drifted.push(`${file.path}:duplicate-path`);
94
+ paths.add(file.path);
95
+ if (file.projection !== "canonical")
96
+ continue;
97
+ const entry = bySubject.get(file.subject) ?? {};
98
+ if (entry[file.client] !== undefined)
99
+ drifted.push(`${file.subject}:${file.client}:duplicate`);
100
+ entry[file.client] = file;
101
+ bySubject.set(file.subject, entry);
102
+ }
103
+ for (const [subject, entry] of [...bySubject].sort(([left], [right]) => left.localeCompare(right))) {
104
+ if (entry.codex === undefined || entry.claude === undefined) {
105
+ drifted.push(`${subject}:missing-client`);
106
+ continue;
107
+ }
108
+ if (entry.codex.semantic_hash !== entry.claude.semantic_hash) {
109
+ drifted.push(`${subject}:semantic-drift`);
110
+ }
111
+ }
112
+ const manifest = [...files]
113
+ .sort((left, right) => left.path.localeCompare(right.path))
114
+ .map(({ client, subject, projection, semantic_hash }) => ({
115
+ client,
116
+ subject,
117
+ projection,
118
+ semantic_hash,
119
+ }));
120
+ return {
121
+ valid: drifted.length === 0,
122
+ drifted,
123
+ semantic_hash: digest(stableJson(manifest)),
124
+ };
85
125
  }
86
- export function codexAgentConfig(catalog) {
87
- const maxThreads = Math.max(1, ...catalog.squads.map((squad) => squad.max_parallelism));
88
- const registrations = [...catalog.agents]
89
- .sort(byId)
90
- .map((agent) => `[agents.${JSON.stringify(agent.codex_name)}]\ndescription = ${JSON.stringify(agent.purpose)}\nconfig_file = ${JSON.stringify(`../.agents/config/clients/codex/agents/${agent.codex_name}.toml`)}\nnickname_candidates = [${agent.nickname_candidates.map((value) => JSON.stringify(value)).join(", ")}]`)
91
- .join("\n\n");
92
- return `[agents]\nmax_concurrent_threads_per_session = ${maxThreads}\nmax_depth = 2\njob_max_runtime_seconds = 1800\ninterrupt_message = true\n\n# zaip-managed begin agent-registrations\n${registrations}\n# zaip-managed end agent-registrations\n`;
126
+ export async function buildAgentGuidance(filesystem, catalog) {
127
+ const files = agentGuidanceFiles(catalog);
128
+ const parity = compareAgentGuidance(files);
129
+ if (!parity.valid)
130
+ throw new Error(`Agent guidance parity failed: ${parity.drifted.join(", ")}`);
131
+ for (const file of files) {
132
+ if (await filesystem.exists(file.path)) {
133
+ const current = await filesystem.readText(file.path);
134
+ if (!isManagedGuidance(current)) {
135
+ throw new Error(`Refusing to overwrite user-owned agent guidance: ${file.path}`);
136
+ }
137
+ }
138
+ }
139
+ const expectedPaths = new Set(files.map((file) => file.path));
140
+ for (const path of await staleManagedAgentGuidancePaths(filesystem, expectedPaths)) {
141
+ await filesystem.removeFile(path);
142
+ }
143
+ for (const file of files)
144
+ await filesystem.writeTextAtomic(file.path, file.content);
145
+ return parity;
146
+ }
147
+ export async function checkAgentGuidance(filesystem, catalog) {
148
+ const files = agentGuidanceFiles(catalog);
149
+ const parity = compareAgentGuidance(files);
150
+ const drifted = [...parity.drifted];
151
+ const findings = [];
152
+ for (const file of files) {
153
+ if (!(await filesystem.exists(file.path))) {
154
+ drifted.push(file.path);
155
+ findings.push({ classification: "missing", path: file.path });
156
+ continue;
157
+ }
158
+ if ((await filesystem.readText(file.path)) !== file.content) {
159
+ drifted.push(file.path);
160
+ findings.push({ classification: "content-drift", path: file.path });
161
+ }
162
+ }
163
+ const inventory = await agentGuidanceInventory(filesystem, new Set(files.map((file) => file.path)));
164
+ for (const path of inventory.staleManaged) {
165
+ drifted.push(path);
166
+ findings.push({ classification: "stale-managed", path });
167
+ }
168
+ for (const path of inventory.unknownUnmanaged) {
169
+ findings.push({ classification: "unknown-unmanaged", path });
170
+ }
171
+ return {
172
+ ...parity,
173
+ valid: drifted.length === 0,
174
+ drifted: [...new Set(drifted)].sort(),
175
+ findings: findings.sort((left, right) => left.classification.localeCompare(right.classification) ||
176
+ left.path.localeCompare(right.path)),
177
+ };
178
+ }
179
+ export function validateGuidanceCatalog(catalog) {
180
+ const agents = new Map(catalog.agents.map((agent) => [agent.id, agent]));
181
+ if (agents.size !== catalog.agents.length)
182
+ throw new Error("Agent ids must be unique");
183
+ const squadIds = new Set(catalog.squads.map((squad) => squad.id));
184
+ if (squadIds.size !== catalog.squads.length)
185
+ throw new Error("Squad ids must be unique");
186
+ for (const agent of catalog.agents) {
187
+ if (!agent.codex_name.startsWith("zaip-agent-")) {
188
+ throw new Error(`${agent.id} codex_name must start with zaip-agent-`);
189
+ }
190
+ const expectedTaskName = agent.nickname_candidates[0];
191
+ if (agent.codex_task_name !== expectedTaskName) {
192
+ throw new Error(`${agent.id} codex_task_name must equal ${expectedTaskName}`);
193
+ }
194
+ const expectedNickname = `${agent.persona.nome}_${agent.persona.cargo}_zaip_agent`;
195
+ if (agent.nickname_candidates.length !== 1 ||
196
+ agent.nickname_candidates[0] !== expectedNickname) {
197
+ throw new Error(`${agent.id} nickname_candidates must contain only the derived persona nickname`);
198
+ }
199
+ }
200
+ for (const squad of catalog.squads) {
201
+ if (!squad.review_policy.independent)
202
+ throw new Error(`${squad.id} requires independent review`);
203
+ const unresolvedMembers = squad.members.map((id) => agents.get(id));
204
+ if (unresolvedMembers.some((agent) => agent === undefined)) {
205
+ throw new Error(`${squad.id} has unknown members`);
206
+ }
207
+ const members = unresolvedMembers.filter(isDefined);
208
+ const executorIds = new Set(members
209
+ .filter((agent) => agent !== undefined && squad.review_policy.executor_roles.includes(agent.role))
210
+ .map((agent) => agent.id));
211
+ const reviewerIds = new Set(members
212
+ .filter((agent) => agent !== undefined && squad.review_policy.reviewer_roles.includes(agent.role))
213
+ .map((agent) => agent.id));
214
+ if (executorIds.size === 0 || reviewerIds.size === 0) {
215
+ throw new Error(`${squad.id} must contain executor and reviewer roles`);
216
+ }
217
+ if ([...executorIds].some((id) => reviewerIds.has(id))) {
218
+ throw new Error(`${squad.id} cannot assign self-review`);
219
+ }
220
+ }
221
+ }
222
+ function clientFiles(group, subject, content, semanticHash) {
223
+ return ["codex", "claude"].map((client) => ({
224
+ client,
225
+ subject,
226
+ projection: "canonical",
227
+ path: `.${client}/${group}/${subject}.md`,
228
+ content,
229
+ semantic_hash: semanticHash,
230
+ }));
93
231
  }
94
232
  function renderCodexAgent(agent, catalog, payload) {
233
+ const hash = digest(payload);
95
234
  const name = agent.codex_name;
96
235
  const finalizer = catalog.agents.find((candidate) => candidate.id === "agent-finalizer");
97
236
  if (agent.role === "orchestrator" && finalizer === undefined) {
@@ -113,6 +252,7 @@ function renderCodexAgent(agent, catalog, payload) {
113
252
  `Evidence: ${agent.contract.evidence.join(", ")}.`,
114
253
  `Use when: ${agent.use_when.join("; ")}.`,
115
254
  `Do not use when: ${agent.do_not_use.join("; ")}.`,
255
+ ...remoteCloudBoundary(agent),
116
256
  ...specialistBoundaries(agent),
117
257
  ...(agent.role === "orchestrator"
118
258
  ? [
@@ -135,8 +275,9 @@ function renderCodexAgent(agent, catalog, payload) {
135
275
  : [
136
276
  "You are a worker selected by zaip-agent-orchestrator. Do not dispatch peer catalog roles; return your bounded result to the orchestrator, which exclusively controls further delegation.",
137
277
  ]),
138
- `Escalate only to catalog identities: ${agent.escalation.map((id) => codexAgentName(id)).join(", ") || "root agent"}.`,
278
+ `Escalate only to catalog identities: ${agent.escalation.map((id) => catalogCodexName(id)).join(", ") || "root agent"}.`,
139
279
  "When delegating to a Codex subagent, select only a registered zaip-agent-NOME identity from the ZAIP catalog; never select default, worker, explorer, or an ad-hoc type.",
280
+ NATIVE_SUBAGENT_POLICY,
140
281
  `When this agent is delegated, agent_type must be exactly ${agent.codex_name} and task_name must be exactly ${agent.codex_task_name}.`,
141
282
  "For every further delegation, read both exact values from the selected catalog entry: agent_type uses codex_name and task_name uses codex_task_name. Never add a work title, purpose label, or other suffix.",
142
283
  "Codex may render task_name in its Subagents pane. The cataloged codex_task_name is therefore mandatory; do not use a task-specific label or claim that the UI label can be forced to include hyphens.",
@@ -148,13 +289,42 @@ function renderCodexAgent(agent, catalog, payload) {
148
289
  : "You cannot approve your own work or issue final approval.",
149
290
  ].join("\n");
150
291
  const sandboxMode = agent.write_scopes.length === 0 ? "read-only" : "workspace-write";
292
+ const reasoningEffort = agent.model.reasoning_effort;
151
293
  const preferredModel = agent.model.preferred[0];
152
294
  const modelConfig = agent.model.preferred.length === 1 &&
153
295
  preferredModel !== undefined &&
154
296
  preferredModel !== "policy-selected"
155
- ? `model = ${JSON.stringify(preferredModel)}\n${agent.model.reasoning_effort === undefined ? "" : `model_reasoning_effort = ${JSON.stringify(agent.model.reasoning_effort)}\n`}`
297
+ ? `model = ${tomlString(preferredModel)}\n${reasoningEffort === undefined ? "" : `model_reasoning_effort = ${tomlString(reasoningEffort)}\n`}`
156
298
  : "";
157
- return `# zaip-managed generated-do-not-edit source=agent-catalog schema=1 sha256=${digest(payload)}\nname = ${JSON.stringify(name)}\ndescription = ${JSON.stringify(agent.purpose)}\nnickname_candidates = [${agent.nickname_candidates.map((value) => JSON.stringify(value)).join(", ")}]\n${modelConfig}sandbox_mode = ${JSON.stringify(sandboxMode)}\ndeveloper_instructions = """\n${instructions.replaceAll('"""', '\\"\\"\\"')}\n"""\n`;
299
+ return `# zaip-managed generated-do-not-edit source=agent-catalog schema=1 sha256=${hash}\nname = ${tomlString(name)}\ndescription = ${tomlString(agent.purpose)}\nnickname_candidates = ${tomlArray(agent.nickname_candidates)}\n${modelConfig}sandbox_mode = ${tomlString(sandboxMode)}\ndeveloper_instructions = ${tomlMultiline(instructions)}\n`;
300
+ }
301
+ function remoteCloudBoundary(agent) {
302
+ const runnerNetwork = resolveAgentPermission(agent, "network", "contract-bound-cloud-runner");
303
+ const runnerShell = resolveAgentPermission(agent, "shell", "contract-bound-cloud-runner");
304
+ if (!runnerNetwork.allowed || !runnerShell.allowed)
305
+ return [];
306
+ return [
307
+ "Remote Cloudflare, Hostinger, Terraform apply/import, and SSH configure operations are allowed only through `node .agents/tools/cloud-runner.mjs` after its autonomous-cloud contract validates the exact target, credentials source, saved-plan hashes, and pinned SSH host key.",
308
+ "This allowance never permits direct SSH/SCP/SFTP, provider CLIs, raw HTTP mutations, Git publication, npm publication, or application deployment.",
309
+ ];
310
+ }
311
+ function resolveAgentPermission(agent, kind, capability) {
312
+ const permission = agent.permissions[kind];
313
+ return {
314
+ allowed: permission?.allow.includes(capability) === true &&
315
+ permission.deny.includes(capability) !== true,
316
+ };
317
+ }
318
+ function renderCodexAlias(agent, alias, removeAfter, payload) {
319
+ const hash = digest(payload);
320
+ const instructions = [
321
+ `Deprecated Codex identity ${alias}.`,
322
+ `Resolve to canonical catalog id ${agent.id} and Codex identity ${agent.codex_name}.`,
323
+ `Persist only ${agent.id} in ZAIP Run records.`,
324
+ NATIVE_SUBAGENT_POLICY,
325
+ `Removal deadline: ${removeAfter}.`,
326
+ ].join("\n");
327
+ return `# zaip-managed generated-do-not-edit source=agent-catalog schema=1 sha256=${hash}\nname = ${tomlString(alias)}\ndescription = ${tomlString(`Deprecated alias for ${agent.codex_name}`)}\nsandbox_mode = ${tomlString(agent.write_scopes.length === 0 ? "read-only" : "workspace-write")}\ndeveloper_instructions = ${tomlMultiline(instructions)}\n`;
158
328
  }
159
329
  function specialistBoundaries(agent) {
160
330
  switch (agent.id) {
@@ -197,11 +367,49 @@ function specialistBoundaries(agent) {
197
367
  return [];
198
368
  }
199
369
  }
200
- function codexAgentName(catalogId) {
370
+ function catalogCodexName(catalogId) {
201
371
  return `zaip-agent-${catalogId.replace(/^agent-/, "")}`;
202
372
  }
203
373
  function renderGuidance(subject, purpose, payload) {
204
- return `<!-- zaip-managed generated-do-not-edit source=agent-catalog schema=1 sha256=${digest(payload)} -->\n# ${subject}\n\n${purpose}\n\n## Canonical contract\n\n\`\`\`json\n${payload}\n\`\`\`\n`;
374
+ const hash = digest(payload);
375
+ return `<!-- zaip-managed generated-do-not-edit source=agent-catalog schema=1 sha256=${hash} -->\n# ${subject}\n\n${purpose}\n\n## Sub-Run policy\n\n${NATIVE_SUBAGENT_POLICY}\n\n## Canonical contract\n\n\`\`\`json\n${payload}\n\`\`\`\n`;
376
+ }
377
+ function tomlString(value) {
378
+ return JSON.stringify(value);
379
+ }
380
+ function tomlArray(values) {
381
+ return `[${values.map(tomlString).join(", ")}]`;
382
+ }
383
+ function tomlMultiline(value) {
384
+ return `"""\n${value.replaceAll('"""', '\\"\\"\\"')}\n"""`;
385
+ }
386
+ function isManagedGuidance(content) {
387
+ return (content.startsWith("# zaip-managed generated-do-not-edit source=agent-catalog ") ||
388
+ content.startsWith("<!-- zaip-managed generated-do-not-edit source=agent-catalog "));
389
+ }
390
+ async function staleManagedAgentGuidancePaths(filesystem, expectedPaths) {
391
+ return (await agentGuidanceInventory(filesystem, expectedPaths)).staleManaged;
392
+ }
393
+ async function agentGuidanceInventory(filesystem, expectedPaths) {
394
+ const candidates = [
395
+ ...(await filesystem.listFiles(".agents/config/clients/codex/agents", ".toml")),
396
+ ...(await filesystem.listFiles(".codex/agents", ".toml")),
397
+ ...(await filesystem.listFiles(".claude/agents", ".md")),
398
+ ].filter((path) => /^\.agents\/config\/clients\/codex\/agents\/[^/]+\.toml$/.test(path) ||
399
+ /^\.codex\/agents\/[^/]+\.toml$/.test(path) ||
400
+ /^\.claude\/agents\/[^/]+\.md$/.test(path));
401
+ const stale = [];
402
+ const unmanaged = [];
403
+ for (const path of candidates) {
404
+ if (expectedPaths.has(path))
405
+ continue;
406
+ const content = await filesystem.readText(path);
407
+ if (isManagedGuidance(content))
408
+ stale.push(path);
409
+ else
410
+ unmanaged.push(path);
411
+ }
412
+ return { staleManaged: stale.sort(), unknownUnmanaged: unmanaged.sort() };
205
413
  }
206
414
  function stableJson(value) {
207
415
  return `${JSON.stringify(sortValue(value), null, 2)}\n`;
@@ -222,4 +430,7 @@ function digest(value) {
222
430
  function byId(left, right) {
223
431
  return left.id.localeCompare(right.id);
224
432
  }
433
+ function isDefined(value) {
434
+ return value !== undefined;
435
+ }
225
436
  //# sourceMappingURL=agent-adapters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-adapters.js","sourceRoot":"","sources":["../../src/services/agent-adapters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-adapters.js","sourceRoot":"","sources":["../../src/services/agent-adapters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const CODEX_CONVERSATION_LIFECYCLE_HOOK: string;
2
+ //# sourceMappingURL=codex-conversation-lifecycle-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-conversation-lifecycle-hook.d.ts","sourceRoot":"","sources":["../../src/services/codex-conversation-lifecycle-hook.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,QA2B7C,CAAC"}
@@ -0,0 +1,29 @@
1
+ export const CODEX_CONVERSATION_LIFECYCLE_HOOK = String.raw `import { existsSync, readFileSync, writeSync } from "node:fs";
2
+ import { promises as fs } from "node:fs";
3
+ import { spawn } from "node:child_process";
4
+ import { dirname, isAbsolute, relative, resolve } from "node:path";
5
+ import { fileURLToPath } from "node:url";
6
+ const root=resolve(dirname(fileURLToPath(import.meta.url)),"..","..");
7
+ const local=resolve(root,".local","hooks");
8
+ let raw=""; for await (const chunk of process.stdin) raw+=chunk;
9
+ let eventName=null;
10
+ try { const event=JSON.parse(raw); eventName=text(event.hook_event_name); const session=text(event.session_id),turn=text(event.turn_id),transcript=text(event.transcript_path);
11
+ if(!enabled()||!inside(text(event.cwd))||!session||!turn){ respond(eventName); process.exit(0); }
12
+ const cli=[resolve(root,"packages","cli","dist","index.js"),resolve(root,".agents","runtime","bin","zaip.mjs")].find(existsSync); if(!cli){diagnostic("cli_not_found",{});respond(eventName);process.exit(0);}
13
+ // Prompt submission is context-only. An early intake would claim the host
14
+ // turn and block an explicit same-turn new-work command.
15
+ if(eventName==="Stop"){ const started=await invoke(cli,["conversation","start","--intent","conversation","--json"],session,turn,transcript); const value=json(started.stdout); const run=runId(started.stdout); if(started.code===0&&run&&value?.task===null){ const status=await terminalAfterStop(transcript,session,turn); if(status!==null){ const result=await invoke(cli,["conversation","finish","--run",run,"--summary","Codex host turn completed","--status",status,"--json"],session,turn,transcript); if(result.code!==0) diagnostic("finish_deferred",{code:result.code}); } else diagnostic("transcript_pending",{turn_id:turn,attempts:3}); } else if(started.code===0&&!run) diagnostic("start_invalid_result",{}); else if(started.code!==0) diagnostic("start_failed",{code:started.code}); }
16
+ respond(eventName);
17
+ } catch(error) { diagnostic("hook_exception",{error:error instanceof Error?error.message:String(error)}); respond(eventName); }
18
+ function enabled(){ try{return /zaip:\s*\r?\n\s*enabled:\s*true\s*(?:\r?\n|$)/.test(readFileSync(resolve(root,".agents","config","project.yaml"),"utf8"));}catch{return false;} }
19
+ function inside(cwd){if(!cwd)return false;const scoped=relative(root,resolve(cwd));return scoped===""||(!scoped.startsWith("..")&&!isAbsolute(scoped));}
20
+ function text(value){if(typeof value!=="string")return null;const normalized=value.trim();return normalized.length>0&&normalized.length<=4096?normalized:null;}
21
+ async function terminal(path,session,turn){if(!path||!isAbsolute(path))return null;try{const content=await fs.readFile(path,"utf8");let trusted=false;for(const line of content.split(/\r?\n/)){try{const item=JSON.parse(line),p=item?.payload;if(item?.type==="session_meta")trusted=p?.id===session||p?.session_id===session;if(trusted&&p?.turn_id===turn&&p?.type==="task_complete")return p?.status==="cancelled"?"cancelled":p?.status==="failed"||p?.error!==undefined?"failed":"completed";}catch{}}return null;}catch{return null;}}
22
+ async function terminalAfterStop(path,session,turn){for(const delay of [0,250,750]){if(delay)await new Promise(done=>setTimeout(done,delay));const status=await terminal(path,session,turn);if(status!==null)return status;}return null;}
23
+ function invoke(cli,args,session,turn,transcript){return new Promise(done=>{const child=spawn(process.execPath,[cli,...args],{cwd:root,windowsHide:true,env:{...process.env,CODEX_THREAD_ID:session,CODEX_TURN_ID:turn,CODEX_TRANSCRIPT_PATH:transcript??""},stdio:["ignore","pipe","pipe"]});let stdout="",stderr="",settled=false;const finish=code=>{if(settled)return;settled=true;clearTimeout(timer);done({code,stdout,stderr});};child.stdout.on("data",c=>stdout=(stdout+String(c)).slice(0,262144));child.stderr.on("data",c=>stderr=(stderr+String(c)).slice(0,8192));child.once("error",()=>finish(1));child.once("close",code=>finish(code??1));const timer=setTimeout(()=>{child.kill();finish(1);},60000);});}
24
+ function json(stdout){try{return JSON.parse(stdout);}catch{return null;}}
25
+ function runId(stdout){const value=json(stdout);const id=value?.run?.run_id??value?.run?.id;return typeof id==="string"?id:null;}
26
+ function diagnostic(code,detail){fs.mkdir(local,{recursive:true}).then(()=>fs.appendFile(resolve(local,"codex-conversation.ndjson"),JSON.stringify({code,detail,at:new Date().toISOString()})+"\n")).catch(()=>{});}
27
+ function respond(name){if(name==="Stop")writeSync(1,JSON.stringify({hookSpecificOutput:{hookEventName:"Stop"}})+"\n");}
28
+ `;
29
+ //# sourceMappingURL=codex-conversation-lifecycle-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-conversation-lifecycle-hook.js","sourceRoot":"","sources":["../../src/services/codex-conversation-lifecycle-hook.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B1D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex-pre-tool-hook-template.d.ts","sourceRoot":"","sources":["../../src/services/codex-pre-tool-hook-template.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,QAwiB/B,CAAC"}
1
+ {"version":3,"file":"codex-pre-tool-hook-template.d.ts","sourceRoot":"","sources":["../../src/services/codex-pre-tool-hook-template.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,QAqtB/B,CAAC"}