@tpsdev-ai/cli 0.1.0 → 0.2.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 (105) hide show
  1. package/dist/bin/tps.js +154 -7
  2. package/dist/bin/tps.js.map +1 -1
  3. package/dist/src/commands/backup.d.ts +19 -0
  4. package/dist/src/commands/backup.d.ts.map +1 -0
  5. package/dist/src/commands/backup.js +595 -0
  6. package/dist/src/commands/backup.js.map +1 -0
  7. package/dist/src/commands/bootstrap.d.ts +7 -0
  8. package/dist/src/commands/bootstrap.d.ts.map +1 -0
  9. package/dist/src/commands/bootstrap.js +255 -0
  10. package/dist/src/commands/bootstrap.js.map +1 -0
  11. package/dist/src/commands/git.d.ts +8 -0
  12. package/dist/src/commands/git.d.ts.map +1 -0
  13. package/dist/src/commands/git.js +53 -0
  14. package/dist/src/commands/git.js.map +1 -0
  15. package/dist/src/commands/identity.d.ts +1 -1
  16. package/dist/src/commands/identity.d.ts.map +1 -1
  17. package/dist/src/commands/identity.js +6 -6
  18. package/dist/src/commands/identity.js.map +1 -1
  19. package/dist/src/commands/mail.d.ts +1 -1
  20. package/dist/src/commands/mail.d.ts.map +1 -1
  21. package/dist/src/commands/mail.js +33 -7
  22. package/dist/src/commands/mail.js.map +1 -1
  23. package/dist/src/commands/office-manager.d.ts +147 -0
  24. package/dist/src/commands/office-manager.d.ts.map +1 -0
  25. package/dist/src/commands/office-manager.js +171 -0
  26. package/dist/src/commands/office-manager.js.map +1 -0
  27. package/dist/src/commands/office.d.ts +4 -11
  28. package/dist/src/commands/office.d.ts.map +1 -1
  29. package/dist/src/commands/office.js +266 -384
  30. package/dist/src/commands/office.js.map +1 -1
  31. package/dist/src/commands/secrets.d.ts +9 -0
  32. package/dist/src/commands/secrets.d.ts.map +1 -0
  33. package/dist/src/commands/secrets.js +54 -0
  34. package/dist/src/commands/secrets.js.map +1 -0
  35. package/dist/src/commands/status.d.ts +33 -0
  36. package/dist/src/commands/status.d.ts.map +1 -0
  37. package/dist/src/commands/status.js +407 -0
  38. package/dist/src/commands/status.js.map +1 -0
  39. package/dist/src/generators/brief.d.ts +6 -0
  40. package/dist/src/generators/brief.d.ts.map +1 -0
  41. package/dist/src/generators/brief.js +33 -0
  42. package/dist/src/generators/brief.js.map +1 -0
  43. package/dist/src/generators/claude-code.d.ts +1 -0
  44. package/dist/src/generators/claude-code.d.ts.map +1 -1
  45. package/dist/src/generators/claude-code.js +5 -0
  46. package/dist/src/generators/claude-code.js.map +1 -1
  47. package/dist/src/generators/codex.d.ts +1 -0
  48. package/dist/src/generators/codex.d.ts.map +1 -1
  49. package/dist/src/generators/codex.js +5 -0
  50. package/dist/src/generators/codex.js.map +1 -1
  51. package/dist/src/generators/openclaw.d.ts.map +1 -1
  52. package/dist/src/generators/openclaw.js +4 -0
  53. package/dist/src/generators/openclaw.js.map +1 -1
  54. package/dist/src/schema/manifest.d.ts +191 -44
  55. package/dist/src/schema/manifest.d.ts.map +1 -1
  56. package/dist/src/schema/manifest.js +58 -55
  57. package/dist/src/schema/manifest.js.map +1 -1
  58. package/dist/src/schema/sanitizer.d.ts.map +1 -1
  59. package/dist/src/schema/sanitizer.js +3 -1
  60. package/dist/src/schema/sanitizer.js.map +1 -1
  61. package/dist/src/utils/agent-info.js +1 -1
  62. package/dist/src/utils/agent-info.js.map +1 -1
  63. package/dist/src/utils/archive.d.ts +2 -9
  64. package/dist/src/utils/archive.d.ts.map +1 -1
  65. package/dist/src/utils/archive.js +90 -62
  66. package/dist/src/utils/archive.js.map +1 -1
  67. package/dist/src/utils/identity.d.ts +13 -3
  68. package/dist/src/utils/identity.d.ts.map +1 -1
  69. package/dist/src/utils/identity.js +109 -16
  70. package/dist/src/utils/identity.js.map +1 -1
  71. package/dist/src/utils/mail-handler.js +2 -2
  72. package/dist/src/utils/mail-handler.js.map +1 -1
  73. package/dist/src/utils/manifest.d.ts.map +1 -1
  74. package/dist/src/utils/manifest.js +17 -14
  75. package/dist/src/utils/manifest.js.map +1 -1
  76. package/dist/src/utils/noise-ik-transport.js +1 -1
  77. package/dist/src/utils/noise-ik-transport.js.map +1 -1
  78. package/dist/src/utils/nono.d.ts +1 -1
  79. package/dist/src/utils/nono.d.ts.map +1 -1
  80. package/dist/src/utils/nono.js.map +1 -1
  81. package/dist/src/utils/plain-tcp-transport.js +1 -1
  82. package/dist/src/utils/plain-tcp-transport.js.map +1 -1
  83. package/dist/src/utils/provision.d.ts.map +1 -1
  84. package/dist/src/utils/provision.js +8 -1
  85. package/dist/src/utils/provision.js.map +1 -1
  86. package/dist/src/utils/relay.js +4 -4
  87. package/dist/src/utils/relay.js.map +1 -1
  88. package/dist/src/utils/vault.d.ts +21 -0
  89. package/dist/src/utils/vault.d.ts.map +1 -0
  90. package/dist/src/utils/vault.js +67 -0
  91. package/dist/src/utils/vault.js.map +1 -0
  92. package/dist/src/utils/workspace.d.ts +14 -0
  93. package/dist/src/utils/workspace.d.ts.map +1 -0
  94. package/dist/src/utils/workspace.js +53 -0
  95. package/dist/src/utils/workspace.js.map +1 -0
  96. package/dist/src/utils/ws-noise-transport.js +2 -2
  97. package/dist/src/utils/ws-noise-transport.js.map +1 -1
  98. package/nono-profiles/tps-backup.toml +18 -0
  99. package/nono-profiles/tps-bootstrap.toml +20 -0
  100. package/nono-profiles/tps-office-manager.toml +21 -0
  101. package/nono-profiles/tps-restore.toml +18 -0
  102. package/nono-profiles/tps-status.toml +19 -0
  103. package/package.json +7 -27
  104. package/LICENSE +0 -201
  105. package/README.md +0 -79
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Generates the OPERATIONS.md brief that teaches an agent how to interact with the TPS environment.
3
+ */
4
+ export function generateOperationalBrief(report, isBranch) {
5
+ const name = report.name || report.identity.default_name;
6
+ return `# Operations Manual: ${name}
7
+
8
+ You are operating within the **Team Provisioning System (TPS)**.
9
+ TPS is an Agent OS that enforces strict isolation boundaries. You do not share a context window with other agents. You must use the \`tps\` CLI to coordinate.
10
+
11
+ ## 1. The Mailroom (Async Communication)
12
+ You communicate with your team via asynchronous mail.
13
+ - **Check your inbox**: \`tps mail check\` (run this periodically if you are waiting for a reply).
14
+ - **Send a message**: \`tps mail send <agent-id> "<message>"\`
15
+ - **Read history**: \`tps mail search <query>\`
16
+
17
+ ## 2. The Roster (Finding Teammates)
18
+ You are not alone. To find out who else is on your team and what they do:
19
+ - **List all agents**: \`tps roster list\`
20
+ - **Look up an agent's skills**: \`tps roster show <agent-id>\`
21
+
22
+ ## 3. Git Worktrees (Safe Collaboration)
23
+ When modifying code repositories, you must NEVER work directly in the main checkout if others are using it.
24
+ - **Create your isolated workspace**: \`tps git worktree ${name.toLowerCase()} <path-to-repo>\`
25
+ - Always perform your git operations (branching, committing, pushing) inside your dedicated worktree.
26
+
27
+ ## 4. Security Boundaries
28
+ ${isBranch ? "- You are running in a **Remote Branch Office**. You have local filesystem access within your workspace, but you must use the Mailroom to communicate with the host or other agents." : "- You are running under **nono** process isolation. Your filesystem access is restricted to your workspace, and your network access may be filtered."}
29
+
30
+ Stick to your role, use the CLI tools provided, and file your TPS reports.
31
+ `;
32
+ }
33
+ //# sourceMappingURL=brief.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief.js","sourceRoot":"","sources":["../../../src/generators/brief.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAiB,EAAE,QAAiB;IAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;IAEzD,OAAO,wBAAwB,IAAI;;;;;;;;;;;;;;;;;;2DAkBsB,IAAI,CAAC,WAAW,EAAE;;;;EAI3E,QAAQ,CAAC,CAAC,CAAC,sLAAsL,CAAC,CAAC,CAAC,sJAAsJ;;;CAG3V,CAAC;AACF,CAAC"}
@@ -12,6 +12,7 @@ export interface GeneratedClaudeCode {
12
12
  export declare function generateClaudeCode(rawReport: TPSReport, options?: {
13
13
  name?: string;
14
14
  workspace?: string;
15
+ branch?: boolean;
15
16
  }): GeneratedClaudeCode;
16
17
  export declare function writeClaudeCode(generated: GeneratedClaudeCode): string[];
17
18
  //# sourceMappingURL=claude-code.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/generators/claude-code.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAMrD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAClD,mBAAmB,CAiErB;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAaxE"}
1
+ {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/generators/claude-code.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAOrD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACpE,mBAAmB,CAqErB;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAaxE"}
@@ -2,6 +2,7 @@ import { sanitizeTPSReport, sanitizeIdentifier } from "../schema/sanitizer.js";
2
2
  import { mkdirSync, writeFileSync, existsSync } from "node:fs";
3
3
  import { join } from "node:path";
4
4
  import { homedir } from "node:os";
5
+ import { generateOperationalBrief } from "./brief.js";
5
6
  export function generateClaudeCode(rawReport, options = {}) {
6
7
  const report = sanitizeTPSReport(rawReport);
7
8
  const agentName = options.name ? sanitizeIdentifier(options.name) : report.identity.default_name;
@@ -26,6 +27,9 @@ export function generateClaudeCode(rawReport, options = {}) {
26
27
  "",
27
28
  report.identity.communication_style,
28
29
  "",
30
+ "## Operations",
31
+ "Read OPERATIONS.md to understand your environment and how to use the TPS CLI.",
32
+ "",
29
33
  ];
30
34
  if (report.flair.length > 0) {
31
35
  claudeMd.push("## Skills", "");
@@ -59,6 +63,7 @@ export function generateClaudeCode(rawReport, options = {}) {
59
63
  };
60
64
  const files = {
61
65
  "CLAUDE.md": claudeMd.join("\n"),
66
+ "OPERATIONS.md": generateOperationalBrief(report, !!options.branch),
62
67
  ".claude/settings.json": JSON.stringify(settings, null, 2) + "\n",
63
68
  };
64
69
  return { files, workspacePath, agentId, agentName };
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/generators/claude-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/generators/claude-code.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export declare function generateCodex(rawReport: TPSReport, options?: {
17
17
  name?: string;
18
18
  workspace?: string;
19
19
  model?: string;
20
+ branch?: boolean;
20
21
  }): GeneratedCodex;
21
22
  export declare function writeCodex(generated: GeneratedCodex): string[];
22
23
  //# sourceMappingURL=codex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/generators/codex.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAMrD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,aAAa,CAC3B,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAClE,cAAc,CAmEhB;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM,EAAE,CAU9D"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/generators/codex.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAOrD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,aAAa,CAC3B,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACpF,cAAc,CAuEhB;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM,EAAE,CAU9D"}
@@ -2,6 +2,7 @@ import { sanitizeTPSReport, sanitizeIdentifier } from "../schema/sanitizer.js";
2
2
  import { mkdirSync, writeFileSync, existsSync } from "node:fs";
3
3
  import { join } from "node:path";
4
4
  import { homedir } from "node:os";
5
+ import { generateOperationalBrief } from "./brief.js";
5
6
  export function generateCodex(rawReport, options = {}) {
6
7
  const report = sanitizeTPSReport(rawReport);
7
8
  const agentName = options.name ? sanitizeIdentifier(options.name) : report.identity.default_name;
@@ -19,6 +20,9 @@ export function generateCodex(rawReport, options = {}) {
19
20
  "",
20
21
  report.description,
21
22
  "",
23
+ "## Operations",
24
+ "Read OPERATIONS.md to understand your environment and how to use the TPS CLI.",
25
+ "",
22
26
  "## Personality",
23
27
  "",
24
28
  report.identity.personality,
@@ -59,6 +63,7 @@ export function generateCodex(rawReport, options = {}) {
59
63
  };
60
64
  const files = {
61
65
  "AGENTS.md": instructions.join("\n"),
66
+ "OPERATIONS.md": generateOperationalBrief(report, !!options.branch),
62
67
  ".codex/config.json": JSON.stringify(config, null, 2) + "\n",
63
68
  };
64
69
  return { files, workspacePath, agentId, agentName };
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/generators/codex.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AASlC,MAAM,UAAU,aAAa,CAC3B,SAAoB,EACpB,UAAiE,EAAE;IAEnE,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;IACjG,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAE1F,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,eAAe,SAAS,4CAA4C,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IACpF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;IAEpC,6CAA6C;IAC7C,MAAM,YAAY,GAAG;QACnB,KAAK,SAAS,EAAE;QAChB,EAAE;QACF,aAAa,MAAM,CAAC,IAAI,EAAE;QAC1B,EAAE;QACF,MAAM,CAAC,WAAW;QAClB,EAAE;QACF,gBAAgB;QAChB,EAAE;QACF,MAAM,CAAC,QAAQ,CAAC,WAAW;QAC3B,EAAE;QACF,wBAAwB;QACxB,EAAE;QACF,MAAM,CAAC,QAAQ,CAAC,mBAAmB;QACnC,EAAE;KACH,CAAC;IAEF,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YACjC,YAAY,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACzC,YAAY,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YACjC,YAAY,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,qBAAqB;IACrB,MAAM,MAAM,GAA4B;QACtC,KAAK;QACL,aAAa,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QACtE,iBAAiB,EAAE,WAAW;KAC/B,CAAC;IAEF,MAAM,KAAK,GAA2B;QACpC,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QACpC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;KAC7D,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAAyB;IAClD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACrD,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,IAAI,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAS;QACnC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/generators/codex.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"openclaw.d.ts","sourceRoot":"","sources":["../../../src/generators/openclaw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AA+BrD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5G,kBAAkB,CA0FpB;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAStE"}
1
+ {"version":3,"file":"openclaw.d.ts","sourceRoot":"","sources":["../../../src/generators/openclaw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAmCrD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5G,kBAAkB,CA6FpB;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAStE"}
@@ -23,6 +23,8 @@ function loadTemplate(name) {
23
23
  const raw = readFileSync(join(dir, name), "utf-8");
24
24
  return Handlebars.compile(raw);
25
25
  }
26
+ import { generateOperationalBrief } from "./brief.js";
27
+ // ... previous helper functions ...
26
28
  Handlebars.registerHelper("json", (ctx) => JSON.stringify(ctx, null, 2));
27
29
  export function generateWorkspace(rawReport, options = {}) {
28
30
  // ops-12.2: Sanitize input report before use
@@ -77,6 +79,8 @@ export function generateWorkspace(rawReport, options = {}) {
77
79
  const tmpl = loadTemplate(t);
78
80
  files[outName] = tmpl(templateData);
79
81
  }
82
+ // Inject OPERATIONS.md brief
83
+ files["OPERATIONS.md"] = generateOperationalBrief(report, !!options.branch);
80
84
  // Generate config matching actual OpenClaw agent schema
81
85
  const config = {
82
86
  id: agentId,
@@ -1 +1 @@
1
- {"version":3,"file":"openclaw.js","sourceRoot":"","sources":["../../../src/generators/openclaw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openclaw.js","sourceRoot":"","sources":["../../../src/generators/openclaw.ts"],"names":[],"mappings":"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"}
@@ -1,57 +1,211 @@
1
1
  import { z } from "zod";
2
- export declare const OfficeAgentSchema: z.ZodObject<{
2
+ export declare const MailHandlerMatchSchema: z.ZodObject<{
3
+ from: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4
+ bodyPattern: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
5
+ }, "strict", z.ZodTypeAny, {
6
+ from?: string[] | undefined;
7
+ bodyPattern?: string | undefined;
8
+ }, {
9
+ from?: string[] | undefined;
10
+ bodyPattern?: string | undefined;
11
+ }>;
12
+ export declare const MailHandlerCapabilitySchema: z.ZodObject<{
13
+ enabled: z.ZodDefault<z.ZodBoolean>;
14
+ exec: z.ZodOptional<z.ZodString>;
15
+ priority: z.ZodDefault<z.ZodNumber>;
16
+ timeout: z.ZodDefault<z.ZodNumber>;
17
+ needs_roster: z.ZodDefault<z.ZodBoolean>;
18
+ match: z.ZodOptional<z.ZodObject<{
19
+ from: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
20
+ bodyPattern: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
21
+ }, "strict", z.ZodTypeAny, {
22
+ from?: string[] | undefined;
23
+ bodyPattern?: string | undefined;
24
+ }, {
25
+ from?: string[] | undefined;
26
+ bodyPattern?: string | undefined;
27
+ }>>;
28
+ }, "strict", z.ZodTypeAny, {
29
+ timeout: number;
30
+ enabled: boolean;
31
+ priority: number;
32
+ needs_roster: boolean;
33
+ match?: {
34
+ from?: string[] | undefined;
35
+ bodyPattern?: string | undefined;
36
+ } | undefined;
37
+ exec?: string | undefined;
38
+ }, {
39
+ match?: {
40
+ from?: string[] | undefined;
41
+ bodyPattern?: string | undefined;
42
+ } | undefined;
43
+ timeout?: number | undefined;
44
+ enabled?: boolean | undefined;
45
+ exec?: string | undefined;
46
+ priority?: number | undefined;
47
+ needs_roster?: boolean | undefined;
48
+ }>;
49
+ export declare const RoutingRuleSchema: z.ZodObject<{
50
+ pattern: z.ZodEffects<z.ZodString, string, string>;
51
+ to: z.ZodString;
52
+ }, "strict", z.ZodTypeAny, {
53
+ to: string;
54
+ pattern: string;
55
+ }, {
56
+ to: string;
57
+ pattern: string;
58
+ }>;
59
+ export declare const TpsYamlSchema: z.ZodObject<{
3
60
  name: z.ZodString;
4
- persona: z.ZodDefault<z.ZodString>;
5
- role: z.ZodOptional<z.ZodString>;
6
- tps_report: z.ZodOptional<z.ZodString>;
7
- }, "strip", z.ZodTypeAny, {
61
+ version: z.ZodOptional<z.ZodString>;
62
+ description: z.ZodOptional<z.ZodString>;
63
+ capabilities: z.ZodOptional<z.ZodObject<{
64
+ mail_handler: z.ZodOptional<z.ZodObject<{
65
+ enabled: z.ZodDefault<z.ZodBoolean>;
66
+ exec: z.ZodOptional<z.ZodString>;
67
+ priority: z.ZodDefault<z.ZodNumber>;
68
+ timeout: z.ZodDefault<z.ZodNumber>;
69
+ needs_roster: z.ZodDefault<z.ZodBoolean>;
70
+ match: z.ZodOptional<z.ZodObject<{
71
+ from: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
72
+ bodyPattern: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
73
+ }, "strict", z.ZodTypeAny, {
74
+ from?: string[] | undefined;
75
+ bodyPattern?: string | undefined;
76
+ }, {
77
+ from?: string[] | undefined;
78
+ bodyPattern?: string | undefined;
79
+ }>>;
80
+ }, "strict", z.ZodTypeAny, {
81
+ timeout: number;
82
+ enabled: boolean;
83
+ priority: number;
84
+ needs_roster: boolean;
85
+ match?: {
86
+ from?: string[] | undefined;
87
+ bodyPattern?: string | undefined;
88
+ } | undefined;
89
+ exec?: string | undefined;
90
+ }, {
91
+ match?: {
92
+ from?: string[] | undefined;
93
+ bodyPattern?: string | undefined;
94
+ } | undefined;
95
+ timeout?: number | undefined;
96
+ enabled?: boolean | undefined;
97
+ exec?: string | undefined;
98
+ priority?: number | undefined;
99
+ needs_roster?: boolean | undefined;
100
+ }>>;
101
+ }, "strip", z.ZodTypeAny, {
102
+ mail_handler?: {
103
+ timeout: number;
104
+ enabled: boolean;
105
+ priority: number;
106
+ needs_roster: boolean;
107
+ match?: {
108
+ from?: string[] | undefined;
109
+ bodyPattern?: string | undefined;
110
+ } | undefined;
111
+ exec?: string | undefined;
112
+ } | undefined;
113
+ }, {
114
+ mail_handler?: {
115
+ match?: {
116
+ from?: string[] | undefined;
117
+ bodyPattern?: string | undefined;
118
+ } | undefined;
119
+ timeout?: number | undefined;
120
+ enabled?: boolean | undefined;
121
+ exec?: string | undefined;
122
+ priority?: number | undefined;
123
+ needs_roster?: boolean | undefined;
124
+ } | undefined;
125
+ }>>;
126
+ routing: z.ZodOptional<z.ZodArray<z.ZodObject<{
127
+ pattern: z.ZodEffects<z.ZodString, string, string>;
128
+ to: z.ZodString;
129
+ }, "strict", z.ZodTypeAny, {
130
+ to: string;
131
+ pattern: string;
132
+ }, {
133
+ to: string;
134
+ pattern: string;
135
+ }>, "many">>;
136
+ }, "strict", z.ZodTypeAny, {
8
137
  name: string;
9
- persona: string;
10
- role?: string | undefined;
11
- tps_report?: string | undefined;
138
+ version?: string | undefined;
139
+ description?: string | undefined;
140
+ capabilities?: {
141
+ mail_handler?: {
142
+ timeout: number;
143
+ enabled: boolean;
144
+ priority: number;
145
+ needs_roster: boolean;
146
+ match?: {
147
+ from?: string[] | undefined;
148
+ bodyPattern?: string | undefined;
149
+ } | undefined;
150
+ exec?: string | undefined;
151
+ } | undefined;
152
+ } | undefined;
153
+ routing?: {
154
+ to: string;
155
+ pattern: string;
156
+ }[] | undefined;
12
157
  }, {
13
158
  name: string;
14
- persona?: string | undefined;
15
- role?: string | undefined;
16
- tps_report?: string | undefined;
159
+ version?: string | undefined;
160
+ description?: string | undefined;
161
+ capabilities?: {
162
+ mail_handler?: {
163
+ match?: {
164
+ from?: string[] | undefined;
165
+ bodyPattern?: string | undefined;
166
+ } | undefined;
167
+ timeout?: number | undefined;
168
+ enabled?: boolean | undefined;
169
+ exec?: string | undefined;
170
+ priority?: number | undefined;
171
+ needs_roster?: boolean | undefined;
172
+ } | undefined;
173
+ } | undefined;
174
+ routing?: {
175
+ to: string;
176
+ pattern: string;
177
+ }[] | undefined;
17
178
  }>;
179
+ export type TpsYaml = z.infer<typeof TpsYamlSchema>;
18
180
  export declare const OfficeManifestSchema: z.ZodObject<{
19
- version: z.ZodDefault<z.ZodString>;
20
181
  name: z.ZodString;
21
- purpose: z.ZodDefault<z.ZodEnum<["development", "research", "adversarial", "ops"]>>;
182
+ purpose: z.ZodDefault<z.ZodEnum<["ops", "research", "development", "adversarial"]>>;
22
183
  manager: z.ZodObject<{
23
184
  name: z.ZodString;
185
+ persona: z.ZodString;
24
186
  role: z.ZodOptional<z.ZodString>;
25
- tps_report: z.ZodOptional<z.ZodString>;
26
- } & {
27
- persona: z.ZodDefault<z.ZodString>;
28
187
  }, "strip", z.ZodTypeAny, {
29
188
  name: string;
30
189
  persona: string;
31
190
  role?: string | undefined;
32
- tps_report?: string | undefined;
33
191
  }, {
34
192
  name: string;
35
- persona?: string | undefined;
193
+ persona: string;
36
194
  role?: string | undefined;
37
- tps_report?: string | undefined;
38
195
  }>;
39
- agents: z.ZodArray<z.ZodObject<{
196
+ agents: z.ZodDefault<z.ZodArray<z.ZodObject<{
40
197
  name: z.ZodString;
41
- persona: z.ZodDefault<z.ZodString>;
198
+ persona: z.ZodString;
42
199
  role: z.ZodOptional<z.ZodString>;
43
- tps_report: z.ZodOptional<z.ZodString>;
44
200
  }, "strip", z.ZodTypeAny, {
45
201
  name: string;
46
202
  persona: string;
47
203
  role?: string | undefined;
48
- tps_report?: string | undefined;
49
204
  }, {
50
205
  name: string;
51
- persona?: string | undefined;
206
+ persona: string;
52
207
  role?: string | undefined;
53
- tps_report?: string | undefined;
54
- }>, "many">;
208
+ }>, "many">>;
55
209
  wall: z.ZodDefault<z.ZodBoolean>;
56
210
  context: z.ZodOptional<z.ZodObject<{
57
211
  briefs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
@@ -83,21 +237,18 @@ export declare const OfficeManifestSchema: z.ZodObject<{
83
237
  readonly?: boolean | undefined;
84
238
  }[] | undefined;
85
239
  }>>;
86
- }, "strip", z.ZodTypeAny, {
87
- version: string;
240
+ }, "strict", z.ZodTypeAny, {
88
241
  name: string;
89
242
  agents: {
90
243
  name: string;
91
244
  persona: string;
92
245
  role?: string | undefined;
93
- tps_report?: string | undefined;
94
246
  }[];
95
- purpose: "ops" | "development" | "research" | "adversarial";
247
+ purpose: "ops" | "research" | "development" | "adversarial";
96
248
  manager: {
97
249
  name: string;
98
250
  persona: string;
99
251
  role?: string | undefined;
100
- tps_report?: string | undefined;
101
252
  };
102
253
  wall: boolean;
103
254
  context?: {
@@ -110,19 +261,18 @@ export declare const OfficeManifestSchema: z.ZodObject<{
110
261
  } | undefined;
111
262
  }, {
112
263
  name: string;
113
- agents: {
114
- name: string;
115
- persona?: string | undefined;
116
- role?: string | undefined;
117
- tps_report?: string | undefined;
118
- }[];
119
264
  manager: {
120
265
  name: string;
121
- persona?: string | undefined;
266
+ persona: string;
122
267
  role?: string | undefined;
123
- tps_report?: string | undefined;
124
268
  };
125
- version?: string | undefined;
269
+ agents?: {
270
+ name: string;
271
+ persona: string;
272
+ role?: string | undefined;
273
+ }[] | undefined;
274
+ purpose?: "ops" | "research" | "development" | "adversarial" | undefined;
275
+ wall?: boolean | undefined;
126
276
  context?: {
127
277
  briefs?: string[] | undefined;
128
278
  mounts?: {
@@ -131,10 +281,7 @@ export declare const OfficeManifestSchema: z.ZodObject<{
131
281
  readonly?: boolean | undefined;
132
282
  }[] | undefined;
133
283
  } | undefined;
134
- purpose?: "ops" | "development" | "research" | "adversarial" | undefined;
135
- wall?: boolean | undefined;
136
284
  }>;
137
285
  export type OfficeManifest = z.infer<typeof OfficeManifestSchema>;
138
- export type OfficeAgent = z.infer<typeof OfficeAgentSchema>;
139
- export declare function parseOfficeManifest(filePath: string): OfficeManifest;
286
+ export declare function parseOfficeManifest(path: string): OfficeManifest;
140
287
  //# sourceMappingURL=manifest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/schema/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AAaH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAuCpE"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/schema/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,sBAAsB;;;;;;;;;EAGxB,CAAC;AAEZ,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO7B,CAAC;AAEZ,eAAO,MAAM,iBAAiB;;;;;;;;;EAGnB,CAAC;AAEZ,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQf,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBtB,CAAC;AAEZ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAKhE"}
@@ -1,62 +1,65 @@
1
1
  import { z } from "zod";
2
- import * as yaml from "js-yaml";
3
- import { readFileSync } from "node:fs";
4
- export const OfficeAgentSchema = z.object({
5
- name: z.string().min(1),
6
- persona: z.string().default("developer"),
7
- role: z.string().optional(),
8
- tps_report: z.string().optional(), // path to a .tps file
9
- });
10
- const OfficeContextMountSchema = z.object({
11
- host: z.string().min(1),
12
- target: z.string().min(1),
13
- readonly: z.boolean().default(true),
14
- });
15
- const OfficeContextSchema = z.object({
16
- briefs: z.array(z.string().min(1).max(1024)).max(20).optional(),
17
- mounts: z.array(OfficeContextMountSchema).max(20).optional(),
18
- }).optional();
19
- export const OfficeManifestSchema = z.object({
20
- version: z.string().default("1"),
21
- name: z.string().min(1, "Office name is required."),
22
- purpose: z.enum(["development", "research", "adversarial", "ops"]).default("development"),
23
- manager: OfficeAgentSchema.extend({
24
- persona: z.string().default("ops"),
25
- }),
26
- agents: z.array(OfficeAgentSchema).min(1, "At least one worker agent is required."),
27
- wall: z.boolean().default(true),
28
- context: OfficeContextSchema,
29
- });
30
- export function parseOfficeManifest(filePath) {
31
- let raw;
2
+ const RegexStringSchema = z.string().refine((val) => {
32
3
  try {
33
- raw = readFileSync(filePath, "utf-8");
4
+ new RegExp(val); // nosemgrep: detect-non-literal-regexp — validating user-provided pattern from config
5
+ return true;
34
6
  }
35
7
  catch {
36
- throw new Error(`PC Load Letter? Couldn't read file: ${filePath}\nWhat does that even mean? Check the path and try again.`);
37
- }
38
- // Pre-parse guardrails against YAML anchor expansion DoS (Billion Laughs).
39
- if (raw.length > 65_536) {
40
- throw new Error("Office manifest exceeds maximum size (64KB).");
41
- }
42
- const aliasRefs = (raw.match(/\*/g) ?? []).length;
43
- if (aliasRefs > 20) {
44
- throw new Error("Office manifest contains too many YAML aliases (max 20).");
45
- }
46
- let parsed;
47
- try {
48
- parsed = yaml.load(raw);
8
+ return false;
49
9
  }
50
- catch (e) {
51
- throw new Error(`I'm gonna need you to fix that office manifest. YAML parse error:\n${e.message}`);
52
- }
53
- const result = OfficeManifestSchema.safeParse(parsed);
54
- if (!result.success) {
55
- const issues = result.error.issues
56
- .map((i) => ` • ${i.path.join(".")}: ${i.message}`)
57
- .join("\n");
58
- throw new Error(`Did you get the memo about the office manifests? Validation failed:\n${issues}`);
59
- }
60
- return result.data;
10
+ }, { message: "Invalid regular expression" });
11
+ export const MailHandlerMatchSchema = z.object({
12
+ from: z.array(z.string()).optional(),
13
+ bodyPattern: RegexStringSchema.optional(),
14
+ }).strict();
15
+ export const MailHandlerCapabilitySchema = z.object({
16
+ enabled: z.boolean().default(true),
17
+ exec: z.string().optional(),
18
+ priority: z.number().default(100),
19
+ timeout: z.number().default(30),
20
+ needs_roster: z.boolean().default(false),
21
+ match: MailHandlerMatchSchema.optional(),
22
+ }).strict();
23
+ export const RoutingRuleSchema = z.object({
24
+ pattern: RegexStringSchema,
25
+ to: z.string(),
26
+ }).strict();
27
+ export const TpsYamlSchema = z.object({
28
+ name: z.string().min(1),
29
+ version: z.string().optional(),
30
+ description: z.string().optional(),
31
+ capabilities: z.object({
32
+ mail_handler: MailHandlerCapabilitySchema.optional(),
33
+ }).optional(),
34
+ routing: z.array(RoutingRuleSchema).optional(),
35
+ }).strict();
36
+ export const OfficeManifestSchema = z.object({
37
+ name: z.string().min(1),
38
+ purpose: z.enum(["ops", "research", "development", "adversarial"]).default("ops"),
39
+ manager: z.object({
40
+ name: z.string(),
41
+ persona: z.string(),
42
+ role: z.string().optional(),
43
+ }),
44
+ agents: z.array(z.object({
45
+ name: z.string(),
46
+ persona: z.string(),
47
+ role: z.string().optional(),
48
+ })).default([]),
49
+ wall: z.boolean().default(false),
50
+ context: z.object({
51
+ briefs: z.array(z.string()).optional(),
52
+ mounts: z.array(z.object({
53
+ host: z.string(),
54
+ target: z.string(),
55
+ readonly: z.boolean().default(true),
56
+ })).optional(),
57
+ }).optional(),
58
+ }).strict();
59
+ export function parseOfficeManifest(path) {
60
+ const { readFileSync } = require("node:fs");
61
+ const { load } = require("js-yaml");
62
+ const doc = load(readFileSync(path, "utf-8"));
63
+ return OfficeManifestSchema.parse(doc);
61
64
  }
62
65
  //# sourceMappingURL=manifest.js.map