@agimon-ai/po-team 0.0.0-alpha.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 (110) hide show
  1. package/LICENSE +25 -0
  2. package/README.md +156 -0
  3. package/dist/agentDiscovery-Whwzc4dP.cjs +1637 -0
  4. package/dist/agentDiscovery-Whwzc4dP.cjs.map +1 -0
  5. package/dist/agentDiscovery-ZQlFkKvB.mjs +1529 -0
  6. package/dist/agentDiscovery-ZQlFkKvB.mjs.map +1 -0
  7. package/dist/apiContracts.cjs +162 -0
  8. package/dist/apiContracts.cjs.map +1 -0
  9. package/dist/apiContracts.d.mts +53 -0
  10. package/dist/apiContracts.d.mts.map +1 -0
  11. package/dist/apiContracts.mjs +157 -0
  12. package/dist/apiContracts.mjs.map +1 -0
  13. package/dist/atomicJson-D0346bt5.cjs +178 -0
  14. package/dist/atomicJson-D0346bt5.cjs.map +1 -0
  15. package/dist/atomicJson-D2t0CDh9.mjs +137 -0
  16. package/dist/atomicJson-D2t0CDh9.mjs.map +1 -0
  17. package/dist/capabilityCeiling-C-Y7H8oC.cjs +191 -0
  18. package/dist/capabilityCeiling-C-Y7H8oC.cjs.map +1 -0
  19. package/dist/capabilityCeiling-CF7kAS18.mjs +156 -0
  20. package/dist/capabilityCeiling-CF7kAS18.mjs.map +1 -0
  21. package/dist/capabilityCeiling.cjs +10 -0
  22. package/dist/capabilityCeiling.d.mts +46 -0
  23. package/dist/capabilityCeiling.d.mts.map +1 -0
  24. package/dist/capabilityCeiling.mjs +3 -0
  25. package/dist/delegation.cjs +49 -0
  26. package/dist/delegation.cjs.map +1 -0
  27. package/dist/delegation.d.mts +269 -0
  28. package/dist/delegation.d.mts.map +1 -0
  29. package/dist/delegation.mjs +34 -0
  30. package/dist/delegation.mjs.map +1 -0
  31. package/dist/delegationApi.cjs +92 -0
  32. package/dist/delegationApi.d.mts +2 -0
  33. package/dist/delegationApi.mjs +2 -0
  34. package/dist/env.cjs +62 -0
  35. package/dist/env.d.mts +2 -0
  36. package/dist/env.mjs +2 -0
  37. package/dist/environment-CaCW3SgT.cjs +320 -0
  38. package/dist/environment-CaCW3SgT.cjs.map +1 -0
  39. package/dist/environment-DrqhrxG_.mjs +75 -0
  40. package/dist/environment-DrqhrxG_.mjs.map +1 -0
  41. package/dist/environment-ma5oQ7uM.d.mts +63 -0
  42. package/dist/environment-ma5oQ7uM.d.mts.map +1 -0
  43. package/dist/extensions/server.cjs +6940 -0
  44. package/dist/extensions/server.cjs.map +1 -0
  45. package/dist/extensions/server.d.mts +5 -0
  46. package/dist/extensions/server.d.mts.map +1 -0
  47. package/dist/extensions/server.mjs +6932 -0
  48. package/dist/extensions/server.mjs.map +1 -0
  49. package/dist/extensions/web.mjs +2308 -0
  50. package/dist/extensions/web.mjs.map +1 -0
  51. package/dist/externalProcessIpc-C-15lJrB.mjs +584 -0
  52. package/dist/externalProcessIpc-C-15lJrB.mjs.map +1 -0
  53. package/dist/externalProcessIpc-ojE0pvw0.cjs +690 -0
  54. package/dist/externalProcessIpc-ojE0pvw0.cjs.map +1 -0
  55. package/dist/fablePlan.cjs +17 -0
  56. package/dist/fablePlan.d.mts +2 -0
  57. package/dist/fablePlan.mjs +2 -0
  58. package/dist/fablePlanApi-BsHhgVFV.mjs +118 -0
  59. package/dist/fablePlanApi-BsHhgVFV.mjs.map +1 -0
  60. package/dist/fablePlanApi-CZ3uUcMi.d.mts +97 -0
  61. package/dist/fablePlanApi-CZ3uUcMi.d.mts.map +1 -0
  62. package/dist/fablePlanApi-wBu9bRXU.cjs +207 -0
  63. package/dist/fablePlanApi-wBu9bRXU.cjs.map +1 -0
  64. package/dist/fablePlanApi.cjs +17 -0
  65. package/dist/fablePlanApi.d.mts +2 -0
  66. package/dist/fablePlanApi.mjs +2 -0
  67. package/dist/index.cjs +49 -0
  68. package/dist/index.cjs.map +1 -0
  69. package/dist/index.d.mts +160 -0
  70. package/dist/index.d.mts.map +1 -0
  71. package/dist/index.mjs +45 -0
  72. package/dist/index.mjs.map +1 -0
  73. package/dist/runs/background/cliRunnerEntry.cjs +539 -0
  74. package/dist/runs/background/cliRunnerEntry.cjs.map +1 -0
  75. package/dist/runs/background/cliRunnerEntry.d.mts +1 -0
  76. package/dist/runs/background/cliRunnerEntry.mjs +537 -0
  77. package/dist/runs/background/cliRunnerEntry.mjs.map +1 -0
  78. package/dist/runtimeSubagentPolicy.cjs +5 -0
  79. package/dist/runtimeSubagentPolicy.d.mts +2 -0
  80. package/dist/runtimeSubagentPolicy.mjs +2 -0
  81. package/dist/runtimeSubagentTool.cjs +11 -0
  82. package/dist/runtimeSubagentTool.d.mts +2 -0
  83. package/dist/runtimeSubagentTool.mjs +2 -0
  84. package/dist/subagentPolicy-ALJam4GN.d.mts +33 -0
  85. package/dist/subagentPolicy-ALJam4GN.d.mts.map +1 -0
  86. package/dist/subagentPolicy-DQRyKDH-.cjs +39 -0
  87. package/dist/subagentPolicy-DQRyKDH-.cjs.map +1 -0
  88. package/dist/subagentPolicy-DxjsKeyj.mjs +22 -0
  89. package/dist/subagentPolicy-DxjsKeyj.mjs.map +1 -0
  90. package/dist/subagentPolicy.cjs +5 -0
  91. package/dist/subagentPolicy.d.mts +2 -0
  92. package/dist/subagentPolicy.mjs +2 -0
  93. package/dist/subagentTool-BTssGLw8.d.mts +103 -0
  94. package/dist/subagentTool-BTssGLw8.d.mts.map +1 -0
  95. package/dist/subagentTool-Ca2zQXKw.cjs +227 -0
  96. package/dist/subagentTool-Ca2zQXKw.cjs.map +1 -0
  97. package/dist/subagentTool-WOYrjxgT.mjs +186 -0
  98. package/dist/subagentTool-WOYrjxgT.mjs.map +1 -0
  99. package/dist/subagentTool.cjs +10 -0
  100. package/dist/subagentTool.d.mts +2 -0
  101. package/dist/subagentTool.mjs +2 -0
  102. package/dist/teamSnapshot-DgaANhBs.mjs +24 -0
  103. package/dist/teamSnapshot-DgaANhBs.mjs.map +1 -0
  104. package/dist/teamSnapshot-oKuGFdYc.cjs +35 -0
  105. package/dist/teamSnapshot-oKuGFdYc.cjs.map +1 -0
  106. package/dist/teamSnapshot.cjs +4 -0
  107. package/dist/teamSnapshot.d.mts +59 -0
  108. package/dist/teamSnapshot.d.mts.map +1 -0
  109. package/dist/teamSnapshot.mjs +2 -0
  110. package/package.json +201 -0
package/dist/index.cjs ADDED
@@ -0,0 +1,49 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_atomicJson = require("./atomicJson-D0346bt5.cjs");
3
+ const require_agentDiscovery = require("./agentDiscovery-Whwzc4dP.cjs");
4
+ let node_fs = require("node:fs");
5
+ node_fs = require_atomicJson.__toESM(node_fs, 1);
6
+ let node_path = require("node:path");
7
+ node_path = require_atomicJson.__toESM(node_path, 1);
8
+ //#region src/services/subagentLaunchContract/index.ts
9
+ /**
10
+ * Public availability check for a subagent launch.
11
+ *
12
+ * Lives in adapters rather than services: resolving the contract stats the
13
+ * working directory and reads agent definitions off disk.
14
+ */
15
+ /** Lightweight public availability check using Doom Team's discovery rules. */
16
+ async function resolveSubagentLaunchContract(input) {
17
+ const cwd = node_path.resolve(input.cwd);
18
+ try {
19
+ if (!node_fs.statSync(cwd).isDirectory()) return {
20
+ ok: false,
21
+ code: "invalid_cwd",
22
+ message: `cwd '${cwd}' is not a directory.`
23
+ };
24
+ } catch (error) {
25
+ return {
26
+ ok: false,
27
+ code: "invalid_cwd",
28
+ message: `cwd '${cwd}' is not a directory.${error instanceof Error ? ` ${error.message}` : ""}`
29
+ };
30
+ }
31
+ const agent = new require_agentDiscovery.AgentDiscoveryService().find(cwd, input.agentScope ?? "both", input.agent);
32
+ if (!agent) return {
33
+ ok: false,
34
+ code: "missing_agent",
35
+ message: `Unknown agent: ${input.agent}`
36
+ };
37
+ return {
38
+ ok: true,
39
+ contract: {
40
+ agent,
41
+ cwd,
42
+ context: input.context ?? agent.defaultContext ?? "fresh"
43
+ }
44
+ };
45
+ }
46
+ //#endregion
47
+ exports.resolveSubagentLaunchContract = resolveSubagentLaunchContract;
48
+
49
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["path","fs","AgentDiscoveryService"],"sources":["../src/services/subagentLaunchContract/index.ts"],"sourcesContent":["/**\n * Public availability check for a subagent launch.\n *\n * Lives in adapters rather than services: resolving the contract stats the\n * working directory and reads agent definitions off disk.\n */\nimport * as fs from 'node:fs';\nimport * as path from 'node:path';\n\nimport type { AgentConfig, AgentScope } from '../../types/agent';\nimport { AgentDiscoveryService } from '../agentDiscovery';\n\nexport interface SubagentLaunchContractInput {\n agent: string;\n cwd: string;\n task?: string;\n agentScope?: AgentScope;\n context?: 'fresh' | 'fork';\n skill?: string | string[] | boolean;\n artifacts?: boolean;\n}\n\nexport interface SubagentLaunchContract {\n agent: AgentConfig;\n cwd: string;\n context: 'fresh' | 'fork';\n}\n\nexport type SubagentLaunchContractResult =\n | { ok: true; contract: SubagentLaunchContract }\n | { ok: false; code: 'invalid_cwd' | 'missing_agent'; message: string };\n\n/** Lightweight public availability check using Doom Team's discovery rules. */\nexport async function resolveSubagentLaunchContract(\n input: SubagentLaunchContractInput,\n): Promise<SubagentLaunchContractResult> {\n const cwd = path.resolve(input.cwd);\n try {\n if (!fs.statSync(cwd).isDirectory()) {\n return { ok: false, code: 'invalid_cwd', message: `cwd '${cwd}' is not a directory.` };\n }\n } catch (error) {\n const detail = error instanceof Error ? ` ${error.message}` : '';\n return { ok: false, code: 'invalid_cwd', message: `cwd '${cwd}' is not a directory.${detail}` };\n }\n\n const agent = new AgentDiscoveryService().find(cwd, input.agentScope ?? 'both', input.agent);\n if (!agent) return { ok: false, code: 'missing_agent', message: `Unknown agent: ${input.agent}` };\n\n return {\n ok: true,\n contract: { agent, cwd, context: input.context ?? agent.defaultContext ?? 'fresh' },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;AAiCA,eAAsB,8BACpB,OACuC;CACvC,MAAM,MAAMA,UAAK,QAAQ,MAAM,GAAG;CAClC,IAAI;EACF,IAAI,CAACC,QAAG,SAAS,GAAG,CAAC,CAAC,YAAY,GAChC,OAAO;GAAE,IAAI;GAAO,MAAM;GAAe,SAAS,QAAQ,IAAI;EAAuB;CAEzF,SAAS,OAAO;EAEd,OAAO;GAAE,IAAI;GAAO,MAAM;GAAe,SAAS,QAAQ,IAAI,uBAD/C,iBAAiB,QAAQ,IAAI,MAAM,YAAY;EACgC;CAChG;CAEA,MAAM,QAAQ,IAAIC,uBAAAA,sBAAsB,CAAC,CAAC,KAAK,KAAK,MAAM,cAAc,QAAQ,MAAM,KAAK;CAC3F,IAAI,CAAC,OAAO,OAAO;EAAE,IAAI;EAAO,MAAM;EAAiB,SAAS,kBAAkB,MAAM;CAAQ;CAEhG,OAAO;EACL,IAAI;EACJ,UAAU;GAAE;GAAO;GAAK,SAAS,MAAM,WAAW,MAAM,kBAAkB;EAAQ;CACpF;AACF"}
@@ -0,0 +1,160 @@
1
+ //#region src/types/index.d.ts
2
+ /** Whether an agent's prompt extends the host's system prompt or replaces it. */
3
+ type SystemPromptMode = 'append' | 'replace';
4
+ /**
5
+ * A ceiling on how many tool calls a child may make.
6
+ *
7
+ * `soft` nudges, `hard` blocks. `block` narrows enforcement to named tools, or
8
+ * `'*'` for all of them.
9
+ */
10
+ interface ToolBudgetConfig {
11
+ soft?: number;
12
+ hard: number;
13
+ block?: string[] | '*';
14
+ }
15
+ //#endregion
16
+ //#region src/types/agent.d.ts
17
+ /** Which directories a discovery pass should read. */
18
+ type AgentScope = 'user' | 'project' | 'both';
19
+ /**
20
+ * Where an agent definition came from.
21
+ *
22
+ * The order matters: a project agent shadows a user agent of the same name,
23
+ * which in turn shadows one staged by a plugin.
24
+ */
25
+ type AgentSource = 'plugin' | 'user' | 'project';
26
+ /** Whether a child starts from a clean context or forks the parent's. */
27
+ type AgentDefaultContext = 'fresh' | 'fork';
28
+ type AgentMemoryScope = 'project' | 'user';
29
+ interface AgentMemoryConfig {
30
+ enabled?: boolean;
31
+ scope?: AgentMemoryScope;
32
+ maxEntries?: number;
33
+ }
34
+ /** Records that a model came from a settings default rather than frontmatter. */
35
+ interface AgentModelSourceInfo {
36
+ type: 'subagents.defaultModel' | 'packages.team.defaultModel';
37
+ scope: 'user' | 'project' | 'package';
38
+ path: string;
39
+ model: string;
40
+ }
41
+ /**
42
+ * The frontmatter fields a builtin agent's override may restate.
43
+ *
44
+ * Overriding a builtin captures the original values so the override can be
45
+ * removed later and the builtin restored exactly, which is why this is a
46
+ * snapshot rather than a diff.
47
+ */
48
+ interface BuiltinAgentOverrideBase {
49
+ description?: string;
50
+ tools?: string[];
51
+ model?: string;
52
+ fallbackModels?: string[];
53
+ thinking?: string | false;
54
+ systemPromptMode?: SystemPromptMode;
55
+ inheritProjectContext?: boolean;
56
+ inheritSkills?: boolean;
57
+ skills?: string[];
58
+ skillPath?: string[];
59
+ extensions?: string[];
60
+ subagentOnlyExtensions?: string[];
61
+ output?: string;
62
+ defaultReads?: string[];
63
+ defaultProgress?: boolean;
64
+ defaultContext?: AgentDefaultContext;
65
+ defaultTimeoutMs?: number;
66
+ /** Which runtime executes this agent. Defaults to the in-process `pi` SDK path. */
67
+ runtime?: string;
68
+ interactive?: boolean;
69
+ maxSubagentDepth?: number;
70
+ completionGuard?: boolean;
71
+ toolBudget?: ToolBudgetConfig;
72
+ memory?: AgentMemoryConfig;
73
+ systemPrompt?: string;
74
+ disabled?: boolean;
75
+ }
76
+ /** Which settings file overrode a builtin, and what it looked like before. */
77
+ interface BuiltinAgentOverrideInfo {
78
+ scope: 'user' | 'project';
79
+ path: string;
80
+ base: BuiltinAgentOverrideBase;
81
+ }
82
+ /**
83
+ * A fully resolved agent definition.
84
+ *
85
+ * Resolved means frontmatter has been merged with settings defaults and any
86
+ * builtin override, so consumers never re-apply precedence themselves.
87
+ */
88
+ interface AgentConfig {
89
+ name: string;
90
+ /** Unqualified name, when the agent is namespaced by a package. */
91
+ localName?: string;
92
+ packageName?: string;
93
+ description: string;
94
+ tools?: string[];
95
+ mcpDirectTools?: string[];
96
+ model?: string;
97
+ fallbackModels?: string[];
98
+ thinking?: string | false;
99
+ systemPromptMode: SystemPromptMode;
100
+ inheritProjectContext: boolean;
101
+ /** Controls Pi ambient skill discovery only; explicit named `skills` remain available. */
102
+ inheritSkills: boolean;
103
+ defaultContext?: AgentDefaultContext;
104
+ defaultTimeoutMs?: number;
105
+ /** Which runtime executes this agent. Defaults to the in-process `pi` SDK path. */
106
+ runtime?: string;
107
+ systemPrompt: string;
108
+ source: AgentSource;
109
+ filePath: string;
110
+ /** Explicit named skill requirements projected into Pi child prompts. */
111
+ skills?: string[];
112
+ /** Lookup roots for explicit skill names; relative roots resolve from the request cwd. */
113
+ skillPath?: string[];
114
+ extensions?: string[];
115
+ /** True when `extensions` came from a settings default, not from frontmatter. */
116
+ extensionsFromDefault?: boolean;
117
+ subagentOnlyExtensions?: string[];
118
+ output?: string;
119
+ defaultReads?: string[];
120
+ defaultProgress?: boolean;
121
+ interactive?: boolean;
122
+ maxSubagentDepth?: number;
123
+ completionGuard?: boolean;
124
+ toolBudget?: ToolBudgetConfig;
125
+ memory?: AgentMemoryConfig;
126
+ disabled?: boolean;
127
+ /** Frontmatter keys this package does not interpret, preserved for round-tripping. */
128
+ extraFields?: Record<string, string>;
129
+ override?: BuiltinAgentOverrideInfo;
130
+ modelSource?: AgentModelSourceInfo;
131
+ }
132
+ //#endregion
133
+ //#region src/services/subagentLaunchContract/index.d.ts
134
+ interface SubagentLaunchContractInput {
135
+ agent: string;
136
+ cwd: string;
137
+ task?: string;
138
+ agentScope?: AgentScope;
139
+ context?: 'fresh' | 'fork';
140
+ skill?: string | string[] | boolean;
141
+ artifacts?: boolean;
142
+ }
143
+ interface SubagentLaunchContract {
144
+ agent: AgentConfig;
145
+ cwd: string;
146
+ context: 'fresh' | 'fork';
147
+ }
148
+ type SubagentLaunchContractResult = {
149
+ ok: true;
150
+ contract: SubagentLaunchContract;
151
+ } | {
152
+ ok: false;
153
+ code: 'invalid_cwd' | 'missing_agent';
154
+ message: string;
155
+ };
156
+ /** Lightweight public availability check using Doom Team's discovery rules. */
157
+ export declare function resolveSubagentLaunchContract(input: SubagentLaunchContractInput): Promise<SubagentLaunchContractResult>;
158
+ //#endregion
159
+ export type { SubagentLaunchContract, SubagentLaunchContractInput, SubagentLaunchContractResult };
160
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types/index.ts","../src/types/agent.ts","../src/services/subagentLaunchContract/index.ts"],"mappings":";;KAyGY;;;;;;;UA4CK;EACf;EACA;EACA;;;;;KCrIU;;;;;;;KAQA;;KAGA;KASA;UAEK;EACf;EACA,QAAQ;EACR;;;UAIe;EACf;EACA;EACA;EACA;;;;;;;;;UAUe;EACf;EACA;EACA;EACA;EACA;EACA,mBAAmB;EACnB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,iBAAiB;EACjB;;EAEA;EACA;EACA;EACA;EACA,aAAa;EACb,SAAS;EACT;EACA;;;UAsCe;EACf;EACA;EACA,MAAM;;;;;;;;UASS;EACf;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kBAAkB;EAClB;;EAEA;EACA,iBAAiB;EACjB;;EAEA;EACA;EACA,QAAQ;EACR;;EAEA;;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,aAAa;EACb,SAAS;EACT;;EAEA,cAAc;EACd,WAAW;EACX,cAAc;;;;UCxKC;EACf;EACA;EACA;EACA,aAAa;EACb;EACA;EACA;;UAGe;EACf,OAAO;EACP;EACA;;KAGU;EACN;EAAU,UAAU;;EACpB;EAAW;EAAuC;;;wBAGlC,8BACpB,OAAO,8BACN,QAAQ"}
package/dist/index.mjs ADDED
@@ -0,0 +1,45 @@
1
+ import { t as AgentDiscoveryService } from "./agentDiscovery-ZQlFkKvB.mjs";
2
+ import * as fs from "node:fs";
3
+ import * as path from "node:path";
4
+ //#region src/services/subagentLaunchContract/index.ts
5
+ /**
6
+ * Public availability check for a subagent launch.
7
+ *
8
+ * Lives in adapters rather than services: resolving the contract stats the
9
+ * working directory and reads agent definitions off disk.
10
+ */
11
+ /** Lightweight public availability check using Doom Team's discovery rules. */
12
+ async function resolveSubagentLaunchContract(input) {
13
+ const cwd = path.resolve(input.cwd);
14
+ try {
15
+ if (!fs.statSync(cwd).isDirectory()) return {
16
+ ok: false,
17
+ code: "invalid_cwd",
18
+ message: `cwd '${cwd}' is not a directory.`
19
+ };
20
+ } catch (error) {
21
+ return {
22
+ ok: false,
23
+ code: "invalid_cwd",
24
+ message: `cwd '${cwd}' is not a directory.${error instanceof Error ? ` ${error.message}` : ""}`
25
+ };
26
+ }
27
+ const agent = new AgentDiscoveryService().find(cwd, input.agentScope ?? "both", input.agent);
28
+ if (!agent) return {
29
+ ok: false,
30
+ code: "missing_agent",
31
+ message: `Unknown agent: ${input.agent}`
32
+ };
33
+ return {
34
+ ok: true,
35
+ contract: {
36
+ agent,
37
+ cwd,
38
+ context: input.context ?? agent.defaultContext ?? "fresh"
39
+ }
40
+ };
41
+ }
42
+ //#endregion
43
+ export { resolveSubagentLaunchContract };
44
+
45
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/services/subagentLaunchContract/index.ts"],"sourcesContent":["/**\n * Public availability check for a subagent launch.\n *\n * Lives in adapters rather than services: resolving the contract stats the\n * working directory and reads agent definitions off disk.\n */\nimport * as fs from 'node:fs';\nimport * as path from 'node:path';\n\nimport type { AgentConfig, AgentScope } from '../../types/agent';\nimport { AgentDiscoveryService } from '../agentDiscovery';\n\nexport interface SubagentLaunchContractInput {\n agent: string;\n cwd: string;\n task?: string;\n agentScope?: AgentScope;\n context?: 'fresh' | 'fork';\n skill?: string | string[] | boolean;\n artifacts?: boolean;\n}\n\nexport interface SubagentLaunchContract {\n agent: AgentConfig;\n cwd: string;\n context: 'fresh' | 'fork';\n}\n\nexport type SubagentLaunchContractResult =\n | { ok: true; contract: SubagentLaunchContract }\n | { ok: false; code: 'invalid_cwd' | 'missing_agent'; message: string };\n\n/** Lightweight public availability check using Doom Team's discovery rules. */\nexport async function resolveSubagentLaunchContract(\n input: SubagentLaunchContractInput,\n): Promise<SubagentLaunchContractResult> {\n const cwd = path.resolve(input.cwd);\n try {\n if (!fs.statSync(cwd).isDirectory()) {\n return { ok: false, code: 'invalid_cwd', message: `cwd '${cwd}' is not a directory.` };\n }\n } catch (error) {\n const detail = error instanceof Error ? ` ${error.message}` : '';\n return { ok: false, code: 'invalid_cwd', message: `cwd '${cwd}' is not a directory.${detail}` };\n }\n\n const agent = new AgentDiscoveryService().find(cwd, input.agentScope ?? 'both', input.agent);\n if (!agent) return { ok: false, code: 'missing_agent', message: `Unknown agent: ${input.agent}` };\n\n return {\n ok: true,\n contract: { agent, cwd, context: input.context ?? agent.defaultContext ?? 'fresh' },\n };\n}\n"],"mappings":";;;;;;;;;;;AAiCA,eAAsB,8BACpB,OACuC;CACvC,MAAM,MAAM,KAAK,QAAQ,MAAM,GAAG;CAClC,IAAI;EACF,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,YAAY,GAChC,OAAO;GAAE,IAAI;GAAO,MAAM;GAAe,SAAS,QAAQ,IAAI;EAAuB;CAEzF,SAAS,OAAO;EAEd,OAAO;GAAE,IAAI;GAAO,MAAM;GAAe,SAAS,QAAQ,IAAI,uBAD/C,iBAAiB,QAAQ,IAAI,MAAM,YAAY;EACgC;CAChG;CAEA,MAAM,QAAQ,IAAI,sBAAsB,CAAC,CAAC,KAAK,KAAK,MAAM,cAAc,QAAQ,MAAM,KAAK;CAC3F,IAAI,CAAC,OAAO,OAAO;EAAE,IAAI;EAAO,MAAM;EAAiB,SAAS,kBAAkB,MAAM;CAAQ;CAEhG,OAAO;EACL,IAAI;EACJ,UAAU;GAAE;GAAO;GAAK,SAAS,MAAM,WAAW,MAAM,kBAAkB;EAAQ;CACpF;AACF"}