@agimon-ai/doompi-plan 0.0.1-alpha.26 → 0.0.1-alpha.28
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.
- package/dist/_virtual/_rolldown/runtime.cjs +1 -1
- package/dist/adapters/pi/extension.cjs +1 -1
- package/dist/adapters/pi/extension.cjs.map +1 -1
- package/dist/adapters/pi/extension.d.cts +1 -2
- package/dist/adapters/pi/extension.d.cts.map +1 -1
- package/dist/adapters/pi/extension.d.mts +1 -2
- package/dist/adapters/pi/extension.d.mts.map +1 -1
- package/dist/adapters/pi/extension.mjs +1 -1
- package/dist/adapters/pi/extension.mjs.map +1 -1
- package/dist/adapters/telemetry/logSinkTelemetry.cjs +1 -1
- package/dist/adapters/telemetry/logSinkTelemetry.cjs.map +1 -1
- package/dist/adapters/telemetry/logSinkTelemetry.d.cts +9 -10
- package/dist/adapters/telemetry/logSinkTelemetry.d.cts.map +1 -1
- package/dist/adapters/telemetry/logSinkTelemetry.d.mts +9 -10
- package/dist/adapters/telemetry/logSinkTelemetry.d.mts.map +1 -1
- package/dist/adapters/telemetry/logSinkTelemetry.mjs.map +1 -1
- package/dist/config.cjs +1 -1
- package/dist/config.d.cts +1 -1
- package/dist/config.d.mts +1 -1
- package/dist/extensions/pi.cjs +1 -1
- package/dist/extensions/pi.mjs +1 -1
- package/dist/fableFlow.cjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/logSinkTelemetry.cjs +1 -1
- package/dist/planConfig.cjs +1 -1
- package/dist/planMode.cjs +1 -1
- package/dist/planMode.d.cts +1 -1
- package/dist/planMode.d.mts +1 -1
- package/dist/prompts.cjs +1 -1
- package/dist/schemas/plan/config.cjs +1 -1
- package/dist/schemas/plan/config.cjs.map +1 -1
- package/dist/schemas/plan/config.d.cts +0 -1
- package/dist/schemas/plan/config.d.cts.map +1 -1
- package/dist/schemas/plan/config.d.mts +0 -1
- package/dist/schemas/plan/config.d.mts.map +1 -1
- package/dist/schemas/plan/config.mjs.map +1 -1
- package/dist/schemas/plan/planConfig.cjs +1 -1
- package/dist/schemas/plan/planConfig.cjs.map +1 -1
- package/dist/schemas/plan/planConfig.d.cts +0 -1
- package/dist/schemas/plan/planConfig.d.cts.map +1 -1
- package/dist/schemas/plan/planConfig.d.mts +0 -1
- package/dist/schemas/plan/planConfig.d.mts.map +1 -1
- package/dist/schemas/plan/planConfig.mjs +1 -1
- package/dist/schemas/plan/planConfig.mjs.map +1 -1
- package/dist/services/fableFlow.cjs +1 -1
- package/dist/services/fableFlow.cjs.map +1 -1
- package/dist/services/fableFlow.d.cts.map +1 -1
- package/dist/services/fableFlow.d.mts.map +1 -1
- package/dist/services/fableFlow.mjs +1 -1
- package/dist/services/fableFlow.mjs.map +1 -1
- package/dist/services/planMode.cjs +3 -3
- package/dist/services/planMode.cjs.map +1 -1
- package/dist/services/planMode.d.cts +1 -2
- package/dist/services/planMode.d.cts.map +1 -1
- package/dist/services/planMode.d.mts +1 -2
- package/dist/services/planMode.d.mts.map +1 -1
- package/dist/services/planMode.mjs +2 -2
- package/dist/services/planMode.mjs.map +1 -1
- package/dist/services/prompts.cjs.map +1 -1
- package/dist/services/prompts.d.cts.map +1 -1
- package/dist/services/prompts.d.mts.map +1 -1
- package/dist/services/prompts.mjs.map +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,n));exports.__toESM=s;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
const e=require("../../services/planMode.cjs");let t=require("@agimon-ai/doompi-extension-contracts/cordis-host");function n(t,n){e.planModeExtension(t,n)}async function r(e){let n=await(0,t.connectDoomCordisHost)(e,`@agimon-ai/doompi-plan`),r=n.root.plugin(i,{pi:e});try{await r}catch(e){try{await r.dispose()}finally{await n.dispose()}throw e}let a;e.on(`session_shutdown`,()=>a??=(async()=>{try{await r.dispose()}finally{await n.dispose()}})())}function i(e,t){n(e,t.pi)}exports.activatePlanExtension=r,exports.default=r,exports.installPlanRuntime=n;
|
|
2
2
|
//# sourceMappingURL=extension.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.cjs","names":[],"sources":["../../../src/adapters/pi/extension.ts"],"sourcesContent":["import { connectDoomCordisHost } from '@agimon-ai/doompi-extension-contracts/cordis-host';\nimport type { Context } from '@deepseek-ai/cordis';\nimport type { ExtensionAPI } from '@earendil-works/pi-coding-agent';\nimport { planModeExtension } from '../../services/planMode.ts';\n\nconst PACKAGE_SOURCE = '@agimon-ai/doompi-plan';\n\n/** Install Plan state and external resources into its host-owned Cordis plugin fiber. */\nexport function installPlanRuntime(cordis: Context, pi: ExtensionAPI): void {\n planModeExtension(cordis, pi);\n}\n\n/** The package's single standard Pi factory, including all optional typed Doom integrations. */\nexport async function activatePlanExtension(pi: ExtensionAPI): Promise<void> {\n const connection = await connectDoomCordisHost(pi, PACKAGE_SOURCE);\n const fiber = connection.root.plugin(planPlugin, { pi });\n try {\n await fiber;\n } catch (error) {\n try {\n await fiber.dispose();\n } finally {\n await connection.dispose();\n }\n throw error;\n }\n let disposal: Promise<void> | undefined;\n pi.on(\n 'session_shutdown',\n () =>\n (disposal ??= (async () => {\n try {\n await fiber.dispose();\n } finally {\n await connection.dispose();\n }\n })()),\n );\n}\n\ninterface PlanPluginConfig {\n readonly pi: ExtensionAPI;\n}\n\nfunction planPlugin(cordis: Context, config: PlanPluginConfig): void {\n installPlanRuntime(cordis, config.pi);\n}\n\nexport default activatePlanExtension;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"extension.cjs","names":["connectDoomCordisHost"],"sources":["../../../src/adapters/pi/extension.ts"],"sourcesContent":["import { connectDoomCordisHost } from '@agimon-ai/doompi-extension-contracts/cordis-host';\nimport type { Context } from '@deepseek-ai/cordis';\nimport type { ExtensionAPI } from '@earendil-works/pi-coding-agent';\nimport { planModeExtension } from '../../services/planMode.ts';\n\nconst PACKAGE_SOURCE = '@agimon-ai/doompi-plan';\n\n/** Install Plan state and external resources into its host-owned Cordis plugin fiber. */\nexport function installPlanRuntime(cordis: Context, pi: ExtensionAPI): void {\n planModeExtension(cordis, pi);\n}\n\n/** The package's single standard Pi factory, including all optional typed Doom integrations. */\nexport async function activatePlanExtension(pi: ExtensionAPI): Promise<void> {\n const connection = await connectDoomCordisHost(pi, PACKAGE_SOURCE);\n const fiber = connection.root.plugin(planPlugin, { pi });\n try {\n await fiber;\n } catch (error) {\n try {\n await fiber.dispose();\n } finally {\n await connection.dispose();\n }\n throw error;\n }\n let disposal: Promise<void> | undefined;\n pi.on(\n 'session_shutdown',\n () =>\n (disposal ??= (async () => {\n try {\n await fiber.dispose();\n } finally {\n await connection.dispose();\n }\n })()),\n );\n}\n\ninterface PlanPluginConfig {\n readonly pi: ExtensionAPI;\n}\n\nfunction planPlugin(cordis: Context, config: PlanPluginConfig): void {\n installPlanRuntime(cordis, config.pi);\n}\n\nexport default activatePlanExtension;\n"],"mappings":"kHAQA,SAAgB,EAAmB,EAAiB,EAAwB,CAC1E,EAAA,kBAAkB,EAAQ,CAAE,CAC9B,CAGA,eAAsB,EAAsB,EAAiC,CAC3E,IAAM,EAAa,MAAA,EAAMA,EAAAA,sBAAAA,CAAsB,EAAI,wBAAc,EAC3D,EAAQ,EAAW,KAAK,OAAO,EAAY,CAAE,IAAG,CAAC,EACvD,GAAI,CACF,MAAM,CACR,OAAS,EAAO,CACd,GAAI,CACF,MAAM,EAAM,QAAQ,CACtB,QAAU,CACR,MAAM,EAAW,QAAQ,CAC3B,CACA,MAAM,CACR,CACA,IAAI,EACJ,EAAG,GACD,uBAEG,KAAc,SAAY,CACzB,GAAI,CACF,MAAM,EAAM,QAAQ,CACtB,QAAU,CACR,MAAM,EAAW,QAAQ,CAC3B,CACF,EAAA,CAAG,CACP,CACF,CAMA,SAAS,EAAW,EAAiB,EAAgC,CACnE,EAAmB,EAAQ,EAAO,EAAE,CACtC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Context } from "@deepseek-ai/cordis";
|
|
2
2
|
import { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
3
|
-
|
|
4
3
|
//#region src/adapters/pi/extension.d.ts
|
|
5
4
|
/** The package's single standard Pi factory, including all optional typed Doom integrations. */
|
|
6
5
|
declare function activatePlanExtension(pi: ExtensionAPI): Promise<void>;
|
|
7
6
|
//#endregion
|
|
8
|
-
export { activatePlanExtension };
|
|
7
|
+
export { activatePlanExtension, activatePlanExtension as default };
|
|
9
8
|
//# sourceMappingURL=extension.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.d.cts","names":[],"sources":["../../../src/adapters/pi/extension.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"extension.d.cts","names":[],"sources":["../../../src/adapters/pi/extension.ts"],"mappings":";;;;iBAasB,sBAAsB,IAAI,eAAe"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Context } from "@deepseek-ai/cordis";
|
|
2
2
|
import { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
3
|
-
|
|
4
3
|
//#region src/adapters/pi/extension.d.ts
|
|
5
4
|
/** The package's single standard Pi factory, including all optional typed Doom integrations. */
|
|
6
5
|
declare function activatePlanExtension(pi: ExtensionAPI): Promise<void>;
|
|
7
6
|
//#endregion
|
|
8
|
-
export { activatePlanExtension };
|
|
7
|
+
export { activatePlanExtension, activatePlanExtension as default };
|
|
9
8
|
//# sourceMappingURL=extension.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.d.mts","names":[],"sources":["../../../src/adapters/pi/extension.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"extension.d.mts","names":[],"sources":["../../../src/adapters/pi/extension.ts"],"mappings":";;;;iBAasB,sBAAsB,IAAI,eAAe"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{planModeExtension as e}from"../../services/planMode.mjs";import{connectDoomCordisHost as t}from"@agimon-ai/doompi-extension-contracts/cordis-host";function n(t,n){e(t,n)}async function r(e){let n=await t(e,`@agimon-ai/doompi-plan`),r=n.root.plugin(i,{pi:e});try{await r}catch(e){try{await r.dispose()}finally{await n.dispose()}throw e}let a;e.on(`session_shutdown`,()=>a??=(async()=>{try{await r.dispose()}finally{await n.dispose()}})())}function i(e,t){n(e,t.pi)}export{r as default};
|
|
1
|
+
import{planModeExtension as e}from"../../services/planMode.mjs";import{connectDoomCordisHost as t}from"@agimon-ai/doompi-extension-contracts/cordis-host";function n(t,n){e(t,n)}async function r(e){let n=await t(e,`@agimon-ai/doompi-plan`),r=n.root.plugin(i,{pi:e});try{await r}catch(e){try{await r.dispose()}finally{await n.dispose()}throw e}let a;e.on(`session_shutdown`,()=>a??=(async()=>{try{await r.dispose()}finally{await n.dispose()}})())}function i(e,t){n(e,t.pi)}export{r as activatePlanExtension,r as default,n as installPlanRuntime};
|
|
2
2
|
//# sourceMappingURL=extension.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.mjs","names":[],"sources":["../../../src/adapters/pi/extension.ts"],"sourcesContent":["import { connectDoomCordisHost } from '@agimon-ai/doompi-extension-contracts/cordis-host';\nimport type { Context } from '@deepseek-ai/cordis';\nimport type { ExtensionAPI } from '@earendil-works/pi-coding-agent';\nimport { planModeExtension } from '../../services/planMode.ts';\n\nconst PACKAGE_SOURCE = '@agimon-ai/doompi-plan';\n\n/** Install Plan state and external resources into its host-owned Cordis plugin fiber. */\nexport function installPlanRuntime(cordis: Context, pi: ExtensionAPI): void {\n planModeExtension(cordis, pi);\n}\n\n/** The package's single standard Pi factory, including all optional typed Doom integrations. */\nexport async function activatePlanExtension(pi: ExtensionAPI): Promise<void> {\n const connection = await connectDoomCordisHost(pi, PACKAGE_SOURCE);\n const fiber = connection.root.plugin(planPlugin, { pi });\n try {\n await fiber;\n } catch (error) {\n try {\n await fiber.dispose();\n } finally {\n await connection.dispose();\n }\n throw error;\n }\n let disposal: Promise<void> | undefined;\n pi.on(\n 'session_shutdown',\n () =>\n (disposal ??= (async () => {\n try {\n await fiber.dispose();\n } finally {\n await connection.dispose();\n }\n })()),\n );\n}\n\ninterface PlanPluginConfig {\n readonly pi: ExtensionAPI;\n}\n\nfunction planPlugin(cordis: Context, config: PlanPluginConfig): void {\n installPlanRuntime(cordis, config.pi);\n}\n\nexport default activatePlanExtension;\n"],"mappings":"0JAQA,SAAgB,EAAmB,EAAiB,EAAwB,CAC1E,EAAkB,EAAQ,
|
|
1
|
+
{"version":3,"file":"extension.mjs","names":[],"sources":["../../../src/adapters/pi/extension.ts"],"sourcesContent":["import { connectDoomCordisHost } from '@agimon-ai/doompi-extension-contracts/cordis-host';\nimport type { Context } from '@deepseek-ai/cordis';\nimport type { ExtensionAPI } from '@earendil-works/pi-coding-agent';\nimport { planModeExtension } from '../../services/planMode.ts';\n\nconst PACKAGE_SOURCE = '@agimon-ai/doompi-plan';\n\n/** Install Plan state and external resources into its host-owned Cordis plugin fiber. */\nexport function installPlanRuntime(cordis: Context, pi: ExtensionAPI): void {\n planModeExtension(cordis, pi);\n}\n\n/** The package's single standard Pi factory, including all optional typed Doom integrations. */\nexport async function activatePlanExtension(pi: ExtensionAPI): Promise<void> {\n const connection = await connectDoomCordisHost(pi, PACKAGE_SOURCE);\n const fiber = connection.root.plugin(planPlugin, { pi });\n try {\n await fiber;\n } catch (error) {\n try {\n await fiber.dispose();\n } finally {\n await connection.dispose();\n }\n throw error;\n }\n let disposal: Promise<void> | undefined;\n pi.on(\n 'session_shutdown',\n () =>\n (disposal ??= (async () => {\n try {\n await fiber.dispose();\n } finally {\n await connection.dispose();\n }\n })()),\n );\n}\n\ninterface PlanPluginConfig {\n readonly pi: ExtensionAPI;\n}\n\nfunction planPlugin(cordis: Context, config: PlanPluginConfig): void {\n installPlanRuntime(cordis, config.pi);\n}\n\nexport default activatePlanExtension;\n"],"mappings":"0JAQA,SAAgB,EAAmB,EAAiB,EAAwB,CAC1E,EAAkB,EAAQ,CAAE,CAC9B,CAGA,eAAsB,EAAsB,EAAiC,CAC3E,IAAM,EAAa,MAAM,EAAsB,EAAI,wBAAc,EAC3D,EAAQ,EAAW,KAAK,OAAO,EAAY,CAAE,IAAG,CAAC,EACvD,GAAI,CACF,MAAM,CACR,OAAS,EAAO,CACd,GAAI,CACF,MAAM,EAAM,QAAQ,CACtB,QAAU,CACR,MAAM,EAAW,QAAQ,CAC3B,CACA,MAAM,CACR,CACA,IAAI,EACJ,EAAG,GACD,uBAEG,KAAc,SAAY,CACzB,GAAI,CACF,MAAM,EAAM,QAAQ,CACtB,QAAU,CACR,MAAM,EAAW,QAAQ,CAC3B,CACF,EAAA,CAAG,CACP,CACF,CAMA,SAAS,EAAW,EAAiB,EAAgC,CACnE,EAAmB,EAAQ,EAAO,EAAE,CACtC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
let e=require("@agimon-ai/doompi-telemetry");const t={configLoadFailed:`doom_plan.config_load_failed`,writePlanFailed:`doom_plan.write_plan_failed`,writePlanTimedOut:`doom_plan.write_plan_timed_out`,writePlanUnsafePath:`doom_plan.write_plan_unsafe_path`,modelResolveFailed:`doom_plan.model_resolve_failed`,modeEnabled:`doom_plan.mode_enabled`,modeDisabled:`doom_plan.mode_disabled`,planWritten:`doom_plan.plan_written`,planReviewCompleted:`doom_plan.plan_review_completed`};function n(t={}){let n=(0,e.createDoomTelemetry)({serviceName:`doom-plan`,packageName:`@agimon-ai/doompi-plan`,cwd:t.cwd,workspaceRoot:t.workspaceRoot,env:t.env,telemetryFactory:t.telemetryFactory,warn:t.warn,enableLogs:!0,enableTraces:!0});return{recordError:(e,t,r)=>n.recordError(e,t,r),recordWarning:(e,t,r)=>n.recordWarning(e,t,r),recordEvent:(e,t)=>n.recordEvent(e,t),flush:()=>n.flush(),shutdown:()=>n.shutdown()}}exports.PLAN_EVENT=t,exports.createPlanTelemetry=n;
|
|
2
2
|
//# sourceMappingURL=logSinkTelemetry.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logSinkTelemetry.cjs","names":[],"sources":["../../../src/adapters/telemetry/logSinkTelemetry.ts"],"sourcesContent":["import { createDoomTelemetry, type DoomTelemetry, type DoomTelemetryOptions } from '@agimon-ai/doompi-telemetry';\n\nconst SERVICE_NAME = 'doom-plan';\nconst PACKAGE_NAME = '@agimon-ai/doompi-plan';\n\nexport const PLAN_EVENT = {\n configLoadFailed: 'doom_plan.config_load_failed',\n writePlanFailed: 'doom_plan.write_plan_failed',\n writePlanTimedOut: 'doom_plan.write_plan_timed_out',\n writePlanUnsafePath: 'doom_plan.write_plan_unsafe_path',\n modelResolveFailed: 'doom_plan.model_resolve_failed',\n modeEnabled: 'doom_plan.mode_enabled',\n modeDisabled: 'doom_plan.mode_disabled',\n planWritten: 'doom_plan.plan_written',\n planReviewCompleted: 'doom_plan.plan_review_completed',\n} as const;\n\nexport type PlanEventName = (typeof PLAN_EVENT)[keyof typeof PLAN_EVENT];\nexport type PlanEventAttributes = Record<string, string | number | boolean>;\n\nexport interface PlanTelemetryOptions {\n cwd?: string;\n workspaceRoot?: string;\n env?: NodeJS.ProcessEnv;\n telemetryFactory?: NonNullable<DoomTelemetryOptions['telemetryFactory']>;\n warn?: (message: string) => void;\n}\n\nexport interface PlanTelemetry {\n recordError(event: PlanEventName, error: unknown, attributes?: PlanEventAttributes): Promise<void>;\n recordWarning(event: PlanEventName, error: unknown, attributes?: PlanEventAttributes): Promise<void>;\n recordEvent(event: PlanEventName, attributes?: PlanEventAttributes): Promise<void>;\n flush(): Promise<void>;\n shutdown(): Promise<void>;\n}\n\nexport function createPlanTelemetry(options: PlanTelemetryOptions = {}): PlanTelemetry {\n const telemetry: DoomTelemetry = createDoomTelemetry({\n serviceName: SERVICE_NAME,\n packageName: PACKAGE_NAME,\n cwd: options.cwd,\n workspaceRoot: options.workspaceRoot,\n env: options.env,\n telemetryFactory: options.telemetryFactory,\n warn: options.warn,\n enableLogs: true,\n enableTraces: true,\n });\n return {\n recordError: (event, error, attributes) => telemetry.recordError(event, error, attributes),\n recordWarning: (event, error, attributes) => telemetry.recordWarning(event, error, attributes),\n recordEvent: (event, attributes) => telemetry.recordEvent(event, attributes),\n flush: () => telemetry.flush(),\n shutdown: () => telemetry.shutdown(),\n };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"logSinkTelemetry.cjs","names":["createDoomTelemetry"],"sources":["../../../src/adapters/telemetry/logSinkTelemetry.ts"],"sourcesContent":["import { createDoomTelemetry, type DoomTelemetry, type DoomTelemetryOptions } from '@agimon-ai/doompi-telemetry';\n\nconst SERVICE_NAME = 'doom-plan';\nconst PACKAGE_NAME = '@agimon-ai/doompi-plan';\n\nexport const PLAN_EVENT = {\n configLoadFailed: 'doom_plan.config_load_failed',\n writePlanFailed: 'doom_plan.write_plan_failed',\n writePlanTimedOut: 'doom_plan.write_plan_timed_out',\n writePlanUnsafePath: 'doom_plan.write_plan_unsafe_path',\n modelResolveFailed: 'doom_plan.model_resolve_failed',\n modeEnabled: 'doom_plan.mode_enabled',\n modeDisabled: 'doom_plan.mode_disabled',\n planWritten: 'doom_plan.plan_written',\n planReviewCompleted: 'doom_plan.plan_review_completed',\n} as const;\n\nexport type PlanEventName = (typeof PLAN_EVENT)[keyof typeof PLAN_EVENT];\nexport type PlanEventAttributes = Record<string, string | number | boolean>;\n\nexport interface PlanTelemetryOptions {\n cwd?: string;\n workspaceRoot?: string;\n env?: NodeJS.ProcessEnv;\n telemetryFactory?: NonNullable<DoomTelemetryOptions['telemetryFactory']>;\n warn?: (message: string) => void;\n}\n\nexport interface PlanTelemetry {\n recordError(event: PlanEventName, error: unknown, attributes?: PlanEventAttributes): Promise<void>;\n recordWarning(event: PlanEventName, error: unknown, attributes?: PlanEventAttributes): Promise<void>;\n recordEvent(event: PlanEventName, attributes?: PlanEventAttributes): Promise<void>;\n flush(): Promise<void>;\n shutdown(): Promise<void>;\n}\n\nexport function createPlanTelemetry(options: PlanTelemetryOptions = {}): PlanTelemetry {\n const telemetry: DoomTelemetry = createDoomTelemetry({\n serviceName: SERVICE_NAME,\n packageName: PACKAGE_NAME,\n cwd: options.cwd,\n workspaceRoot: options.workspaceRoot,\n env: options.env,\n telemetryFactory: options.telemetryFactory,\n warn: options.warn,\n enableLogs: true,\n enableTraces: true,\n });\n return {\n recordError: (event, error, attributes) => telemetry.recordError(event, error, attributes),\n recordWarning: (event, error, attributes) => telemetry.recordWarning(event, error, attributes),\n recordEvent: (event, attributes) => telemetry.recordEvent(event, attributes),\n flush: () => telemetry.flush(),\n shutdown: () => telemetry.shutdown(),\n };\n}\n"],"mappings":"6CAEA,MAGa,EAAa,CACxB,iBAAkB,+BAClB,gBAAiB,8BACjB,kBAAmB,iCACnB,oBAAqB,mCACrB,mBAAoB,iCACpB,YAAa,yBACb,aAAc,0BACd,YAAa,yBACb,oBAAqB,iCACvB,EAqBA,SAAgB,EAAoB,EAAgC,CAAC,EAAkB,CACrF,IAAM,GAAA,EAA2BA,EAAAA,oBAAAA,CAAoB,CACnD,YAAa,YACb,YAAa,yBACb,IAAK,EAAQ,IACb,cAAe,EAAQ,cACvB,IAAK,EAAQ,IACb,iBAAkB,EAAQ,iBAC1B,KAAM,EAAQ,KACd,WAAY,GACZ,aAAc,EAChB,CAAC,EACD,MAAO,CACL,aAAc,EAAO,EAAO,IAAe,EAAU,YAAY,EAAO,EAAO,CAAU,EACzF,eAAgB,EAAO,EAAO,IAAe,EAAU,cAAc,EAAO,EAAO,CAAU,EAC7F,aAAc,EAAO,IAAe,EAAU,YAAY,EAAO,CAAU,EAC3E,UAAa,EAAU,MAAM,EAC7B,aAAgB,EAAU,SAAS,CACrC,CACF"}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import { DoomTelemetryOptions } from "@agimon-ai/doompi-telemetry";
|
|
2
|
-
|
|
3
2
|
//#region src/adapters/telemetry/logSinkTelemetry.d.ts
|
|
4
3
|
declare const PLAN_EVENT: {
|
|
5
|
-
readonly configLoadFailed:
|
|
6
|
-
readonly writePlanFailed:
|
|
7
|
-
readonly writePlanTimedOut:
|
|
8
|
-
readonly writePlanUnsafePath:
|
|
9
|
-
readonly modelResolveFailed:
|
|
10
|
-
readonly modeEnabled:
|
|
11
|
-
readonly modeDisabled:
|
|
12
|
-
readonly planWritten:
|
|
13
|
-
readonly planReviewCompleted:
|
|
4
|
+
readonly configLoadFailed: 'doom_plan.config_load_failed';
|
|
5
|
+
readonly writePlanFailed: 'doom_plan.write_plan_failed';
|
|
6
|
+
readonly writePlanTimedOut: 'doom_plan.write_plan_timed_out';
|
|
7
|
+
readonly writePlanUnsafePath: 'doom_plan.write_plan_unsafe_path';
|
|
8
|
+
readonly modelResolveFailed: 'doom_plan.model_resolve_failed';
|
|
9
|
+
readonly modeEnabled: 'doom_plan.mode_enabled';
|
|
10
|
+
readonly modeDisabled: 'doom_plan.mode_disabled';
|
|
11
|
+
readonly planWritten: 'doom_plan.plan_written';
|
|
12
|
+
readonly planReviewCompleted: 'doom_plan.plan_review_completed';
|
|
14
13
|
};
|
|
15
14
|
type PlanEventName = (typeof PLAN_EVENT)[keyof typeof PLAN_EVENT];
|
|
16
15
|
type PlanEventAttributes = Record<string, string | number | boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logSinkTelemetry.d.cts","names":[],"sources":["../../../src/adapters/telemetry/logSinkTelemetry.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"logSinkTelemetry.d.cts","names":[],"sources":["../../../src/adapters/telemetry/logSinkTelemetry.ts"],"mappings":";;cAKa;WACX;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;KAGU,wBAAwB,yBAAyB;KACjD,sBAAsB;UAEjB;EACf;EACA;EACA,MAAM,OAAO;EACb,mBAAmB,YAAY;EAC/B,QAAQ;;UAGO;EACf,YAAY,OAAO,eAAe,gBAAgB,aAAa,sBAAsB;EACrF,cAAc,OAAO,eAAe,gBAAgB,aAAa,sBAAsB;EACvF,YAAY,OAAO,eAAe,aAAa,sBAAsB;EACrE,SAAS;EACT,YAAY;;iBAGE,oBAAoB,UAAS,uBAA4B"}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import { DoomTelemetryOptions } from "@agimon-ai/doompi-telemetry";
|
|
2
|
-
|
|
3
2
|
//#region src/adapters/telemetry/logSinkTelemetry.d.ts
|
|
4
3
|
declare const PLAN_EVENT: {
|
|
5
|
-
readonly configLoadFailed:
|
|
6
|
-
readonly writePlanFailed:
|
|
7
|
-
readonly writePlanTimedOut:
|
|
8
|
-
readonly writePlanUnsafePath:
|
|
9
|
-
readonly modelResolveFailed:
|
|
10
|
-
readonly modeEnabled:
|
|
11
|
-
readonly modeDisabled:
|
|
12
|
-
readonly planWritten:
|
|
13
|
-
readonly planReviewCompleted:
|
|
4
|
+
readonly configLoadFailed: 'doom_plan.config_load_failed';
|
|
5
|
+
readonly writePlanFailed: 'doom_plan.write_plan_failed';
|
|
6
|
+
readonly writePlanTimedOut: 'doom_plan.write_plan_timed_out';
|
|
7
|
+
readonly writePlanUnsafePath: 'doom_plan.write_plan_unsafe_path';
|
|
8
|
+
readonly modelResolveFailed: 'doom_plan.model_resolve_failed';
|
|
9
|
+
readonly modeEnabled: 'doom_plan.mode_enabled';
|
|
10
|
+
readonly modeDisabled: 'doom_plan.mode_disabled';
|
|
11
|
+
readonly planWritten: 'doom_plan.plan_written';
|
|
12
|
+
readonly planReviewCompleted: 'doom_plan.plan_review_completed';
|
|
14
13
|
};
|
|
15
14
|
type PlanEventName = (typeof PLAN_EVENT)[keyof typeof PLAN_EVENT];
|
|
16
15
|
type PlanEventAttributes = Record<string, string | number | boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logSinkTelemetry.d.mts","names":[],"sources":["../../../src/adapters/telemetry/logSinkTelemetry.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"logSinkTelemetry.d.mts","names":[],"sources":["../../../src/adapters/telemetry/logSinkTelemetry.ts"],"mappings":";;cAKa;WACX;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;KAGU,wBAAwB,yBAAyB;KACjD,sBAAsB;UAEjB;EACf;EACA;EACA,MAAM,OAAO;EACb,mBAAmB,YAAY;EAC/B,QAAQ;;UAGO;EACf,YAAY,OAAO,eAAe,gBAAgB,aAAa,sBAAsB;EACrF,cAAc,OAAO,eAAe,gBAAgB,aAAa,sBAAsB;EACvF,YAAY,OAAO,eAAe,aAAa,sBAAsB;EACrE,SAAS;EACT,YAAY;;iBAGE,oBAAoB,UAAS,uBAA4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logSinkTelemetry.mjs","names":[],"sources":["../../../src/adapters/telemetry/logSinkTelemetry.ts"],"sourcesContent":["import { createDoomTelemetry, type DoomTelemetry, type DoomTelemetryOptions } from '@agimon-ai/doompi-telemetry';\n\nconst SERVICE_NAME = 'doom-plan';\nconst PACKAGE_NAME = '@agimon-ai/doompi-plan';\n\nexport const PLAN_EVENT = {\n configLoadFailed: 'doom_plan.config_load_failed',\n writePlanFailed: 'doom_plan.write_plan_failed',\n writePlanTimedOut: 'doom_plan.write_plan_timed_out',\n writePlanUnsafePath: 'doom_plan.write_plan_unsafe_path',\n modelResolveFailed: 'doom_plan.model_resolve_failed',\n modeEnabled: 'doom_plan.mode_enabled',\n modeDisabled: 'doom_plan.mode_disabled',\n planWritten: 'doom_plan.plan_written',\n planReviewCompleted: 'doom_plan.plan_review_completed',\n} as const;\n\nexport type PlanEventName = (typeof PLAN_EVENT)[keyof typeof PLAN_EVENT];\nexport type PlanEventAttributes = Record<string, string | number | boolean>;\n\nexport interface PlanTelemetryOptions {\n cwd?: string;\n workspaceRoot?: string;\n env?: NodeJS.ProcessEnv;\n telemetryFactory?: NonNullable<DoomTelemetryOptions['telemetryFactory']>;\n warn?: (message: string) => void;\n}\n\nexport interface PlanTelemetry {\n recordError(event: PlanEventName, error: unknown, attributes?: PlanEventAttributes): Promise<void>;\n recordWarning(event: PlanEventName, error: unknown, attributes?: PlanEventAttributes): Promise<void>;\n recordEvent(event: PlanEventName, attributes?: PlanEventAttributes): Promise<void>;\n flush(): Promise<void>;\n shutdown(): Promise<void>;\n}\n\nexport function createPlanTelemetry(options: PlanTelemetryOptions = {}): PlanTelemetry {\n const telemetry: DoomTelemetry = createDoomTelemetry({\n serviceName: SERVICE_NAME,\n packageName: PACKAGE_NAME,\n cwd: options.cwd,\n workspaceRoot: options.workspaceRoot,\n env: options.env,\n telemetryFactory: options.telemetryFactory,\n warn: options.warn,\n enableLogs: true,\n enableTraces: true,\n });\n return {\n recordError: (event, error, attributes) => telemetry.recordError(event, error, attributes),\n recordWarning: (event, error, attributes) => telemetry.recordWarning(event, error, attributes),\n recordEvent: (event, attributes) => telemetry.recordEvent(event, attributes),\n flush: () => telemetry.flush(),\n shutdown: () => telemetry.shutdown(),\n };\n}\n"],"mappings":"kEAEA,MAGa,EAAa,CACxB,iBAAkB,+BAClB,gBAAiB,8BACjB,kBAAmB,iCACnB,oBAAqB,mCACrB,mBAAoB,iCACpB,YAAa,yBACb,aAAc,0BACd,YAAa,yBACb,oBAAqB,
|
|
1
|
+
{"version":3,"file":"logSinkTelemetry.mjs","names":[],"sources":["../../../src/adapters/telemetry/logSinkTelemetry.ts"],"sourcesContent":["import { createDoomTelemetry, type DoomTelemetry, type DoomTelemetryOptions } from '@agimon-ai/doompi-telemetry';\n\nconst SERVICE_NAME = 'doom-plan';\nconst PACKAGE_NAME = '@agimon-ai/doompi-plan';\n\nexport const PLAN_EVENT = {\n configLoadFailed: 'doom_plan.config_load_failed',\n writePlanFailed: 'doom_plan.write_plan_failed',\n writePlanTimedOut: 'doom_plan.write_plan_timed_out',\n writePlanUnsafePath: 'doom_plan.write_plan_unsafe_path',\n modelResolveFailed: 'doom_plan.model_resolve_failed',\n modeEnabled: 'doom_plan.mode_enabled',\n modeDisabled: 'doom_plan.mode_disabled',\n planWritten: 'doom_plan.plan_written',\n planReviewCompleted: 'doom_plan.plan_review_completed',\n} as const;\n\nexport type PlanEventName = (typeof PLAN_EVENT)[keyof typeof PLAN_EVENT];\nexport type PlanEventAttributes = Record<string, string | number | boolean>;\n\nexport interface PlanTelemetryOptions {\n cwd?: string;\n workspaceRoot?: string;\n env?: NodeJS.ProcessEnv;\n telemetryFactory?: NonNullable<DoomTelemetryOptions['telemetryFactory']>;\n warn?: (message: string) => void;\n}\n\nexport interface PlanTelemetry {\n recordError(event: PlanEventName, error: unknown, attributes?: PlanEventAttributes): Promise<void>;\n recordWarning(event: PlanEventName, error: unknown, attributes?: PlanEventAttributes): Promise<void>;\n recordEvent(event: PlanEventName, attributes?: PlanEventAttributes): Promise<void>;\n flush(): Promise<void>;\n shutdown(): Promise<void>;\n}\n\nexport function createPlanTelemetry(options: PlanTelemetryOptions = {}): PlanTelemetry {\n const telemetry: DoomTelemetry = createDoomTelemetry({\n serviceName: SERVICE_NAME,\n packageName: PACKAGE_NAME,\n cwd: options.cwd,\n workspaceRoot: options.workspaceRoot,\n env: options.env,\n telemetryFactory: options.telemetryFactory,\n warn: options.warn,\n enableLogs: true,\n enableTraces: true,\n });\n return {\n recordError: (event, error, attributes) => telemetry.recordError(event, error, attributes),\n recordWarning: (event, error, attributes) => telemetry.recordWarning(event, error, attributes),\n recordEvent: (event, attributes) => telemetry.recordEvent(event, attributes),\n flush: () => telemetry.flush(),\n shutdown: () => telemetry.shutdown(),\n };\n}\n"],"mappings":"kEAEA,MAGa,EAAa,CACxB,iBAAkB,+BAClB,gBAAiB,8BACjB,kBAAmB,iCACnB,oBAAqB,mCACrB,mBAAoB,iCACpB,YAAa,yBACb,aAAc,0BACd,YAAa,yBACb,oBAAqB,iCACvB,EAqBA,SAAgB,EAAoB,EAAgC,CAAC,EAAkB,CACrF,IAAM,EAA2B,EAAoB,CACnD,YAAa,YACb,YAAa,yBACb,IAAK,EAAQ,IACb,cAAe,EAAQ,cACvB,IAAK,EAAQ,IACb,iBAAkB,EAAQ,iBAC1B,KAAM,EAAQ,KACd,WAAY,GACZ,aAAc,EAChB,CAAC,EACD,MAAO,CACL,aAAc,EAAO,EAAO,IAAe,EAAU,YAAY,EAAO,EAAO,CAAU,EACzF,eAAgB,EAAO,EAAO,IAAe,EAAU,cAAc,EAAO,EAAO,CAAU,EAC7F,aAAc,EAAO,IAAe,EAAU,YAAY,EAAO,CAAU,EAC3E,UAAa,EAAU,MAAM,EAC7B,aAAgB,EAAU,SAAS,CACrC,CACF"}
|
package/dist/config.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`})
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./schemas/plan/config.cjs");let t=require("@agimon-ai/doompi-config");exports.getHarnessState=t.getHarnessState,exports.globalDoomConfigPath=t.globalDoomConfigPath,exports.loadDoomConfig=e.loadDoomConfig,exports.loadHarnessState=t.loadHarnessState,exports.mergeDoomConfigs=e.mergeDoomConfigs,exports.parseDoomConfig=e.parseDoomConfig,exports.parsePlanningModeConfig=t.parsePlanningModeConfig,exports.repositoryDoomConfigPath=t.repositoryDoomConfigPath,exports.resolvePlanningPlansDirectory=t.resolvePlanningPlansDirectory;
|
package/dist/config.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { DoomConfig, PlanningAgentConfig, PlanningModeConfig, PlanningThinkingLevel, getHarnessState, globalDoomConfigPath, loadDoomConfig, loadHarnessState, mergeDoomConfigs, parseDoomConfig, parsePlanningModeConfig, repositoryDoomConfigPath, resolvePlanningPlansDirectory } from "./schemas/plan/config.cjs";
|
|
2
|
-
export { DoomConfig, PlanningAgentConfig, PlanningModeConfig, PlanningThinkingLevel, getHarnessState, globalDoomConfigPath, loadDoomConfig, loadHarnessState, mergeDoomConfigs, parseDoomConfig, parsePlanningModeConfig, repositoryDoomConfigPath, resolvePlanningPlansDirectory };
|
|
2
|
+
export { DoomConfig, type PlanningAgentConfig, type PlanningModeConfig, type PlanningThinkingLevel, getHarnessState, globalDoomConfigPath, loadDoomConfig, loadHarnessState, mergeDoomConfigs, parseDoomConfig, parsePlanningModeConfig, repositoryDoomConfigPath, resolvePlanningPlansDirectory };
|
package/dist/config.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { DoomConfig, PlanningAgentConfig, PlanningModeConfig, PlanningThinkingLevel, getHarnessState, globalDoomConfigPath, loadDoomConfig, loadHarnessState, mergeDoomConfigs, parseDoomConfig, parsePlanningModeConfig, repositoryDoomConfigPath, resolvePlanningPlansDirectory } from "./schemas/plan/config.mjs";
|
|
2
|
-
export { DoomConfig, PlanningAgentConfig, PlanningModeConfig, PlanningThinkingLevel, getHarnessState, globalDoomConfigPath, loadDoomConfig, loadHarnessState, mergeDoomConfigs, parseDoomConfig, parsePlanningModeConfig, repositoryDoomConfigPath, resolvePlanningPlansDirectory };
|
|
2
|
+
export { DoomConfig, type PlanningAgentConfig, type PlanningModeConfig, type PlanningThinkingLevel, getHarnessState, globalDoomConfigPath, loadDoomConfig, loadHarnessState, mergeDoomConfigs, parseDoomConfig, parsePlanningModeConfig, repositoryDoomConfigPath, resolvePlanningPlansDirectory };
|
package/dist/extensions/pi.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(
|
|
1
|
+
const e=require("../adapters/pi/extension.cjs");module.exports=e.activatePlanExtension;
|
package/dist/extensions/pi.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e
|
|
1
|
+
import{activatePlanExtension as e}from"../adapters/pi/extension.mjs";export{e as default};
|
package/dist/fableFlow.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./services/fableFlow.cjs");exports.FABLE_PLAN_MODEL=e.FABLE_PLAN_MODEL,exports.FABLE_PLAN_PROFILE=e.FABLE_PLAN_PROFILE,exports.FABLE_PLAN_REQUESTER=e.FABLE_PLAN_REQUESTER,exports.FABLE_PLAN_RUNTIME=e.FABLE_PLAN_RUNTIME,exports.FABLE_PROVIDER_SOURCE=e.FABLE_PROVIDER_SOURCE,exports.MAX_FABLE_ARRAY_ITEMS=e.MAX_FABLE_ARRAY_ITEMS,exports.MAX_FABLE_PACKET_BYTES=e.MAX_FABLE_PACKET_BYTES,exports.MAX_FABLE_TEXT_BYTES=e.MAX_FABLE_TEXT_BYTES,exports.containsSuspectedCredential=e.containsSuspectedCredential,exports.createFablePlanFlow=e.createFablePlanFlow,exports.sanitizeFablePacket=e.sanitizeFablePacket;
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`})
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./schemas/plan/config.cjs"),t=require("./services/fableFlow.cjs"),n=require("./services/prompts.cjs"),r=require("./services/planMode.cjs");let i=require("@agimon-ai/doompi-config");exports.FABLE_PLAN_MODEL=t.FABLE_PLAN_MODEL,exports.FABLE_PLAN_PROFILE=t.FABLE_PLAN_PROFILE,exports.FABLE_PLAN_REQUESTER=t.FABLE_PLAN_REQUESTER,exports.FABLE_PLAN_RUNTIME=t.FABLE_PLAN_RUNTIME,exports.FABLE_PROVIDER_SOURCE=t.FABLE_PROVIDER_SOURCE,exports.MAX_FABLE_ARRAY_ITEMS=t.MAX_FABLE_ARRAY_ITEMS,exports.MAX_FABLE_PACKET_BYTES=t.MAX_FABLE_PACKET_BYTES,exports.MAX_FABLE_TEXT_BYTES=t.MAX_FABLE_TEXT_BYTES,exports.WRITE_PLAN_TIMEOUT_MS=r.WRITE_PLAN_TIMEOUT_MS,exports.buildDebugPlanningPrompt=n.buildDebugPlanningPrompt,exports.buildFablePlanningPrompt=n.buildFablePlanningPrompt,exports.buildFlavorPlanningPrompt=n.buildFlavorPlanningPrompt,exports.buildNormalPlanningPrompt=n.buildNormalPlanningPrompt,exports.configurePlanningSubagentInput=r.configurePlanningSubagentInput,exports.configurePlanningTaskInput=r.configurePlanningTaskInput,exports.constrainSubagentInput=r.constrainSubagentInput,exports.containsSuspectedCredential=t.containsSuspectedCredential,exports.createFablePlanFlow=t.createFablePlanFlow,exports.createPlanIdentifier=r.createPlanIdentifier,exports.getHarnessState=i.getHarnessState,exports.globalDoomConfigPath=i.globalDoomConfigPath,exports.isBlockedSubagentManagementAction=r.isBlockedSubagentManagementAction,exports.loadDoomConfig=e.loadDoomConfig,exports.loadHarnessState=i.loadHarnessState,exports.loadPlanningModeConfig=r.loadPlanningModeConfig,exports.mergeDoomConfigs=e.mergeDoomConfigs,exports.parseDebugEvidencePacket=r.parseDebugEvidencePacket,exports.parseDoomConfig=e.parseDoomConfig,exports.parsePersistedPlanState=r.parsePersistedPlanState,exports.parsePlanningModeConfig=i.parsePlanningModeConfig,exports.planModeExtension=r.planModeExtension,exports.planModeTools=r.planModeTools,exports.planSessionIdentifier=r.planSessionIdentifier,exports.planTitleSlug=r.planTitleSlug,exports.planningSubagentModel=r.planningSubagentModel,exports.repositoryDoomConfigPath=i.repositoryDoomConfigPath,exports.resolvePlanningPlansDirectory=i.resolvePlanningPlansDirectory,exports.sanitizeFablePacket=t.sanitizeFablePacket,exports.visiblePlanForToolCall=r.visiblePlanForToolCall;
|
package/dist/index.d.cts
CHANGED
|
@@ -2,4 +2,4 @@ import { DoomConfig, PlanningAgentConfig, PlanningModeConfig, PlanningThinkingLe
|
|
|
2
2
|
import { FABLE_PLAN_MODEL, FABLE_PLAN_PROFILE, FABLE_PLAN_REQUESTER, FABLE_PLAN_RUNTIME, FABLE_PROVIDER_SOURCE, FableFlowOptions, FablePlanBroker, FablePlanFinding, FablePlanFlow, FablePlanPacket, FablePlanRequest, FablePlanResult, FablePlanStage, FablePlanStatus, FableStage, MAX_FABLE_ARRAY_ITEMS, MAX_FABLE_PACKET_BYTES, MAX_FABLE_TEXT_BYTES, containsSuspectedCredential, createFablePlanFlow, sanitizeFablePacket } from "./services/fableFlow.cjs";
|
|
3
3
|
import { DebugEvidencePacket, PlanningFlavor, buildDebugPlanningPrompt, buildFablePlanningPrompt, buildFlavorPlanningPrompt, buildNormalPlanningPrompt } from "./services/prompts.cjs";
|
|
4
4
|
import { ModelIdentity, PlanModeExtensionOptions, PlanSnapshot, PlanningConfigProvider, WRITE_PLAN_TIMEOUT_MS, configurePlanningSubagentInput, configurePlanningTaskInput, constrainSubagentInput, createPlanIdentifier, isBlockedSubagentManagementAction, loadPlanningModeConfig, parseDebugEvidencePacket, parsePersistedPlanState, planModeExtension, planModeTools, planSessionIdentifier, planTitleSlug, planningSubagentModel, visiblePlanForToolCall } from "./services/planMode.cjs";
|
|
5
|
-
export { DebugEvidencePacket, DoomConfig, FABLE_PLAN_MODEL, FABLE_PLAN_PROFILE, FABLE_PLAN_REQUESTER, FABLE_PLAN_RUNTIME, FABLE_PROVIDER_SOURCE, FableFlowOptions, FablePlanBroker, FablePlanFinding, FablePlanFlow, FablePlanPacket, FablePlanRequest, FablePlanResult, FablePlanStage, FablePlanStatus, FableStage, MAX_FABLE_ARRAY_ITEMS, MAX_FABLE_PACKET_BYTES, MAX_FABLE_TEXT_BYTES, ModelIdentity, PlanModeExtensionOptions, PlanSnapshot, PlanningAgentConfig, PlanningConfigProvider, PlanningFlavor, PlanningModeConfig, PlanningThinkingLevel, WRITE_PLAN_TIMEOUT_MS, buildDebugPlanningPrompt, buildFablePlanningPrompt, buildFlavorPlanningPrompt, buildNormalPlanningPrompt, configurePlanningSubagentInput, configurePlanningTaskInput, constrainSubagentInput, containsSuspectedCredential, createFablePlanFlow, createPlanIdentifier, getHarnessState, globalDoomConfigPath, isBlockedSubagentManagementAction, loadDoomConfig, loadHarnessState, loadPlanningModeConfig, mergeDoomConfigs, parseDebugEvidencePacket, parseDoomConfig, parsePersistedPlanState, parsePlanningModeConfig, planModeExtension, planModeTools, planSessionIdentifier, planTitleSlug, planningSubagentModel, repositoryDoomConfigPath, resolvePlanningPlansDirectory, sanitizeFablePacket, visiblePlanForToolCall };
|
|
5
|
+
export { DebugEvidencePacket, DoomConfig, FABLE_PLAN_MODEL, FABLE_PLAN_PROFILE, FABLE_PLAN_REQUESTER, FABLE_PLAN_RUNTIME, FABLE_PROVIDER_SOURCE, FableFlowOptions, FablePlanBroker, FablePlanFinding, FablePlanFlow, FablePlanPacket, FablePlanRequest, FablePlanResult, FablePlanStage, FablePlanStatus, FableStage, MAX_FABLE_ARRAY_ITEMS, MAX_FABLE_PACKET_BYTES, MAX_FABLE_TEXT_BYTES, ModelIdentity, PlanModeExtensionOptions, PlanSnapshot, type PlanningAgentConfig, PlanningConfigProvider, PlanningFlavor, type PlanningModeConfig, type PlanningThinkingLevel, WRITE_PLAN_TIMEOUT_MS, buildDebugPlanningPrompt, buildFablePlanningPrompt, buildFlavorPlanningPrompt, buildNormalPlanningPrompt, configurePlanningSubagentInput, configurePlanningTaskInput, constrainSubagentInput, containsSuspectedCredential, createFablePlanFlow, createPlanIdentifier, getHarnessState, globalDoomConfigPath, isBlockedSubagentManagementAction, loadDoomConfig, loadHarnessState, loadPlanningModeConfig, mergeDoomConfigs, parseDebugEvidencePacket, parseDoomConfig, parsePersistedPlanState, parsePlanningModeConfig, planModeExtension, planModeTools, planSessionIdentifier, planTitleSlug, planningSubagentModel, repositoryDoomConfigPath, resolvePlanningPlansDirectory, sanitizeFablePacket, visiblePlanForToolCall };
|
package/dist/index.d.mts
CHANGED
|
@@ -2,4 +2,4 @@ import { DoomConfig, PlanningAgentConfig, PlanningModeConfig, PlanningThinkingLe
|
|
|
2
2
|
import { FABLE_PLAN_MODEL, FABLE_PLAN_PROFILE, FABLE_PLAN_REQUESTER, FABLE_PLAN_RUNTIME, FABLE_PROVIDER_SOURCE, FableFlowOptions, FablePlanBroker, FablePlanFinding, FablePlanFlow, FablePlanPacket, FablePlanRequest, FablePlanResult, FablePlanStage, FablePlanStatus, FableStage, MAX_FABLE_ARRAY_ITEMS, MAX_FABLE_PACKET_BYTES, MAX_FABLE_TEXT_BYTES, containsSuspectedCredential, createFablePlanFlow, sanitizeFablePacket } from "./services/fableFlow.mjs";
|
|
3
3
|
import { DebugEvidencePacket, PlanningFlavor, buildDebugPlanningPrompt, buildFablePlanningPrompt, buildFlavorPlanningPrompt, buildNormalPlanningPrompt } from "./services/prompts.mjs";
|
|
4
4
|
import { ModelIdentity, PlanModeExtensionOptions, PlanSnapshot, PlanningConfigProvider, WRITE_PLAN_TIMEOUT_MS, configurePlanningSubagentInput, configurePlanningTaskInput, constrainSubagentInput, createPlanIdentifier, isBlockedSubagentManagementAction, loadPlanningModeConfig, parseDebugEvidencePacket, parsePersistedPlanState, planModeExtension, planModeTools, planSessionIdentifier, planTitleSlug, planningSubagentModel, visiblePlanForToolCall } from "./services/planMode.mjs";
|
|
5
|
-
export { DebugEvidencePacket, DoomConfig, FABLE_PLAN_MODEL, FABLE_PLAN_PROFILE, FABLE_PLAN_REQUESTER, FABLE_PLAN_RUNTIME, FABLE_PROVIDER_SOURCE, FableFlowOptions, FablePlanBroker, FablePlanFinding, FablePlanFlow, FablePlanPacket, FablePlanRequest, FablePlanResult, FablePlanStage, FablePlanStatus, FableStage, MAX_FABLE_ARRAY_ITEMS, MAX_FABLE_PACKET_BYTES, MAX_FABLE_TEXT_BYTES, ModelIdentity, PlanModeExtensionOptions, PlanSnapshot, PlanningAgentConfig, PlanningConfigProvider, PlanningFlavor, PlanningModeConfig, PlanningThinkingLevel, WRITE_PLAN_TIMEOUT_MS, buildDebugPlanningPrompt, buildFablePlanningPrompt, buildFlavorPlanningPrompt, buildNormalPlanningPrompt, configurePlanningSubagentInput, configurePlanningTaskInput, constrainSubagentInput, containsSuspectedCredential, createFablePlanFlow, createPlanIdentifier, getHarnessState, globalDoomConfigPath, isBlockedSubagentManagementAction, loadDoomConfig, loadHarnessState, loadPlanningModeConfig, mergeDoomConfigs, parseDebugEvidencePacket, parseDoomConfig, parsePersistedPlanState, parsePlanningModeConfig, planModeExtension, planModeTools, planSessionIdentifier, planTitleSlug, planningSubagentModel, repositoryDoomConfigPath, resolvePlanningPlansDirectory, sanitizeFablePacket, visiblePlanForToolCall };
|
|
5
|
+
export { DebugEvidencePacket, DoomConfig, FABLE_PLAN_MODEL, FABLE_PLAN_PROFILE, FABLE_PLAN_REQUESTER, FABLE_PLAN_RUNTIME, FABLE_PROVIDER_SOURCE, FableFlowOptions, FablePlanBroker, FablePlanFinding, FablePlanFlow, FablePlanPacket, FablePlanRequest, FablePlanResult, FablePlanStage, FablePlanStatus, FableStage, MAX_FABLE_ARRAY_ITEMS, MAX_FABLE_PACKET_BYTES, MAX_FABLE_TEXT_BYTES, ModelIdentity, PlanModeExtensionOptions, PlanSnapshot, type PlanningAgentConfig, PlanningConfigProvider, PlanningFlavor, type PlanningModeConfig, type PlanningThinkingLevel, WRITE_PLAN_TIMEOUT_MS, buildDebugPlanningPrompt, buildFablePlanningPrompt, buildFlavorPlanningPrompt, buildNormalPlanningPrompt, configurePlanningSubagentInput, configurePlanningTaskInput, constrainSubagentInput, containsSuspectedCredential, createFablePlanFlow, createPlanIdentifier, getHarnessState, globalDoomConfigPath, isBlockedSubagentManagementAction, loadDoomConfig, loadHarnessState, loadPlanningModeConfig, mergeDoomConfigs, parseDebugEvidencePacket, parseDoomConfig, parsePersistedPlanState, parsePlanningModeConfig, planModeExtension, planModeTools, planSessionIdentifier, planTitleSlug, planningSubagentModel, repositoryDoomConfigPath, resolvePlanningPlansDirectory, sanitizeFablePacket, visiblePlanForToolCall };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./adapters/telemetry/logSinkTelemetry.cjs");exports.PLAN_EVENT=e.PLAN_EVENT,exports.createPlanTelemetry=e.createPlanTelemetry;
|
package/dist/planConfig.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./schemas/plan/planConfig.cjs");exports.PLAN_CONFIG_SECTION_ID=e.PLAN_CONFIG_SECTION_ID,exports.PLAN_SETTINGS=e.PLAN_SETTINGS,exports.planConfigSections=e.planConfigSections,exports.planSettingByFieldId=e.planSettingByFieldId;
|
package/dist/planMode.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./services/planMode.cjs");exports.WRITE_PLAN_TIMEOUT_MS=e.WRITE_PLAN_TIMEOUT_MS,exports.configurePlanningSubagentInput=e.configurePlanningSubagentInput,exports.configurePlanningTaskInput=e.configurePlanningTaskInput,exports.constrainSubagentInput=e.constrainSubagentInput,exports.createPlanIdentifier=e.createPlanIdentifier,exports.isBlockedSubagentManagementAction=e.isBlockedSubagentManagementAction,exports.loadPlanningModeConfig=e.loadPlanningModeConfig,exports.parseDebugEvidencePacket=e.parseDebugEvidencePacket,exports.parsePersistedPlanState=e.parsePersistedPlanState,exports.planModeExtension=e.planModeExtension,exports.planModeTools=e.planModeTools,exports.planSessionIdentifier=e.planSessionIdentifier,exports.planTitleSlug=e.planTitleSlug,exports.planningSubagentModel=e.planningSubagentModel,exports.visiblePlanForToolCall=e.visiblePlanForToolCall;
|
package/dist/planMode.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { PlanningFlavor } from "./services/prompts.cjs";
|
|
2
2
|
import { ModelIdentity, PlanModeExtensionOptions, PlanSnapshot, PlanningConfigProvider, WRITE_PLAN_TIMEOUT_MS, configurePlanningSubagentInput, configurePlanningTaskInput, constrainSubagentInput, createPlanIdentifier, isBlockedSubagentManagementAction, loadPlanningModeConfig, parseDebugEvidencePacket, parsePersistedPlanState, planModeExtension, planModeTools, planSessionIdentifier, planTitleSlug, planningSubagentModel, visiblePlanForToolCall } from "./services/planMode.cjs";
|
|
3
|
-
export { ModelIdentity, PlanModeExtensionOptions, PlanSnapshot, PlanningConfigProvider, PlanningFlavor, WRITE_PLAN_TIMEOUT_MS, configurePlanningSubagentInput, configurePlanningTaskInput, constrainSubagentInput, createPlanIdentifier, isBlockedSubagentManagementAction, loadPlanningModeConfig, parseDebugEvidencePacket, parsePersistedPlanState, planModeExtension, planModeTools, planSessionIdentifier, planTitleSlug, planningSubagentModel, visiblePlanForToolCall };
|
|
3
|
+
export { ModelIdentity, PlanModeExtensionOptions, PlanSnapshot, PlanningConfigProvider, type PlanningFlavor, WRITE_PLAN_TIMEOUT_MS, configurePlanningSubagentInput, configurePlanningTaskInput, constrainSubagentInput, createPlanIdentifier, isBlockedSubagentManagementAction, loadPlanningModeConfig, parseDebugEvidencePacket, parsePersistedPlanState, planModeExtension, planModeTools, planSessionIdentifier, planTitleSlug, planningSubagentModel, visiblePlanForToolCall };
|
package/dist/planMode.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { PlanningFlavor } from "./services/prompts.mjs";
|
|
2
2
|
import { ModelIdentity, PlanModeExtensionOptions, PlanSnapshot, PlanningConfigProvider, WRITE_PLAN_TIMEOUT_MS, configurePlanningSubagentInput, configurePlanningTaskInput, constrainSubagentInput, createPlanIdentifier, isBlockedSubagentManagementAction, loadPlanningModeConfig, parseDebugEvidencePacket, parsePersistedPlanState, planModeExtension, planModeTools, planSessionIdentifier, planTitleSlug, planningSubagentModel, visiblePlanForToolCall } from "./services/planMode.mjs";
|
|
3
|
-
export { ModelIdentity, PlanModeExtensionOptions, PlanSnapshot, PlanningConfigProvider, PlanningFlavor, WRITE_PLAN_TIMEOUT_MS, configurePlanningSubagentInput, configurePlanningTaskInput, constrainSubagentInput, createPlanIdentifier, isBlockedSubagentManagementAction, loadPlanningModeConfig, parseDebugEvidencePacket, parsePersistedPlanState, planModeExtension, planModeTools, planSessionIdentifier, planTitleSlug, planningSubagentModel, visiblePlanForToolCall };
|
|
3
|
+
export { ModelIdentity, PlanModeExtensionOptions, PlanSnapshot, PlanningConfigProvider, type PlanningFlavor, WRITE_PLAN_TIMEOUT_MS, configurePlanningSubagentInput, configurePlanningTaskInput, constrainSubagentInput, createPlanIdentifier, isBlockedSubagentManagementAction, loadPlanningModeConfig, parseDebugEvidencePacket, parsePersistedPlanState, planModeExtension, planModeTools, planSessionIdentifier, planTitleSlug, planningSubagentModel, visiblePlanForToolCall };
|
package/dist/prompts.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./services/prompts.cjs");exports.buildDebugPlanningPrompt=e.buildDebugPlanningPrompt,exports.buildFablePlanningPrompt=e.buildFablePlanningPrompt,exports.buildFlavorPlanningPrompt=e.buildFlavorPlanningPrompt,exports.buildNormalPlanningPrompt=e.buildNormalPlanningPrompt;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
let e=require("@agimon-ai/doompi-config");function t(t,n){let r=(0,e.parseDoomConfig)(t,n);return r.modes?{modes:r.modes}:{}}function n(t,n){let r=(0,e.mergeDoomConfigs)({...t,projectTrust:`ask`},{...n,projectTrust:`ask`});return r.modes?{modes:r.modes}:{}}function r(t,n){let r=(0,e.loadDoomConfig)(t,n);return r.modes?{modes:r.modes}:{}}exports.getHarnessState=e.getHarnessState,exports.globalDoomConfigPath=e.globalDoomConfigPath,exports.loadDoomConfig=r,exports.loadHarnessState=e.loadHarnessState,exports.mergeDoomConfigs=n,exports.parseDoomConfig=t,exports.parsePlanningModeConfig=e.parsePlanningModeConfig,exports.repositoryDoomConfigPath=e.repositoryDoomConfigPath,exports.resolvePlanningPlansDirectory=e.resolvePlanningPlansDirectory;
|
|
2
2
|
//# sourceMappingURL=config.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.cjs","names":[],"sources":["../../../src/schemas/plan/config.ts"],"sourcesContent":["import {\n getHarnessState,\n globalDoomConfigPath,\n loadHarnessState,\n loadDoomConfig as loadSharedDoomConfig,\n mergeDoomConfigs as mergeSharedDoomConfigs,\n type PlanningAgentConfig,\n type PlanningModeConfig,\n type PlanningThinkingLevel,\n parsePlanningModeConfig,\n parseDoomConfig as parseSharedDoomConfig,\n repositoryDoomConfigPath,\n resolvePlanningPlansDirectory,\n} from '@agimon-ai/doompi-config';\n\nexport type { PlanningAgentConfig, PlanningModeConfig, PlanningThinkingLevel };\n\nexport interface DoomConfig {\n modes?: {\n planning?: PlanningModeConfig;\n };\n}\n\nconst DEFAULT_PROJECT_TRUST = 'ask' as const;\n\nexport {\n getHarnessState,\n globalDoomConfigPath,\n loadHarnessState,\n parsePlanningModeConfig,\n repositoryDoomConfigPath,\n resolvePlanningPlansDirectory,\n};\n\nexport function parseDoomConfig(content: string, filePath: string): DoomConfig {\n const config = parseSharedDoomConfig(content, filePath);\n return config.modes ? { modes: config.modes } : {};\n}\n\nexport function mergeDoomConfigs(globalConfig: DoomConfig, repositoryConfig: DoomConfig): DoomConfig {\n const merged = mergeSharedDoomConfigs(\n { ...globalConfig, projectTrust: DEFAULT_PROJECT_TRUST },\n { ...repositoryConfig, projectTrust: DEFAULT_PROJECT_TRUST },\n );\n return merged.modes ? { modes: merged.modes } : {};\n}\n\nexport function loadDoomConfig(repoRoot: string, homeDirectory?: string): DoomConfig {\n const config = loadSharedDoomConfig(repoRoot, homeDirectory);\n return config.modes ? { modes: config.modes } : {};\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.cjs","names":["parseSharedDoomConfig","mergeSharedDoomConfigs","loadSharedDoomConfig"],"sources":["../../../src/schemas/plan/config.ts"],"sourcesContent":["import {\n getHarnessState,\n globalDoomConfigPath,\n loadHarnessState,\n loadDoomConfig as loadSharedDoomConfig,\n mergeDoomConfigs as mergeSharedDoomConfigs,\n type PlanningAgentConfig,\n type PlanningModeConfig,\n type PlanningThinkingLevel,\n parsePlanningModeConfig,\n parseDoomConfig as parseSharedDoomConfig,\n repositoryDoomConfigPath,\n resolvePlanningPlansDirectory,\n} from '@agimon-ai/doompi-config';\n\nexport type { PlanningAgentConfig, PlanningModeConfig, PlanningThinkingLevel };\n\nexport interface DoomConfig {\n modes?: {\n planning?: PlanningModeConfig;\n };\n}\n\nconst DEFAULT_PROJECT_TRUST = 'ask' as const;\n\nexport {\n getHarnessState,\n globalDoomConfigPath,\n loadHarnessState,\n parsePlanningModeConfig,\n repositoryDoomConfigPath,\n resolvePlanningPlansDirectory,\n};\n\nexport function parseDoomConfig(content: string, filePath: string): DoomConfig {\n const config = parseSharedDoomConfig(content, filePath);\n return config.modes ? { modes: config.modes } : {};\n}\n\nexport function mergeDoomConfigs(globalConfig: DoomConfig, repositoryConfig: DoomConfig): DoomConfig {\n const merged = mergeSharedDoomConfigs(\n { ...globalConfig, projectTrust: DEFAULT_PROJECT_TRUST },\n { ...repositoryConfig, projectTrust: DEFAULT_PROJECT_TRUST },\n );\n return merged.modes ? { modes: merged.modes } : {};\n}\n\nexport function loadDoomConfig(repoRoot: string, homeDirectory?: string): DoomConfig {\n const config = loadSharedDoomConfig(repoRoot, homeDirectory);\n return config.modes ? { modes: config.modes } : {};\n}\n"],"mappings":"0CAkCA,SAAgB,EAAgB,EAAiB,EAA8B,CAC7E,IAAM,GAAA,EAASA,EAAAA,gBAAAA,CAAsB,EAAS,CAAQ,EACtD,OAAO,EAAO,MAAQ,CAAE,MAAO,EAAO,KAAM,EAAI,CAAC,CACnD,CAEA,SAAgB,EAAiB,EAA0B,EAA0C,CACnG,IAAM,GAAA,EAASC,EAAAA,iBAAAA,CACb,CAAE,GAAG,EAAc,aAAc,KAAsB,EACvD,CAAE,GAAG,EAAkB,aAAc,KAAsB,CAC7D,EACA,OAAO,EAAO,MAAQ,CAAE,MAAO,EAAO,KAAM,EAAI,CAAC,CACnD,CAEA,SAAgB,EAAe,EAAkB,EAAoC,CACnF,IAAM,GAAA,EAASC,EAAAA,eAAAA,CAAqB,EAAU,CAAa,EAC3D,OAAO,EAAO,MAAQ,CAAE,MAAO,EAAO,KAAM,EAAI,CAAC,CACnD"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { PlanningAgentConfig, PlanningModeConfig, PlanningThinkingLevel, getHarnessState, globalDoomConfigPath, loadHarnessState, parsePlanningModeConfig, repositoryDoomConfigPath, resolvePlanningPlansDirectory } from "@agimon-ai/doompi-config";
|
|
2
|
-
|
|
3
2
|
//#region src/schemas/plan/config.d.ts
|
|
4
3
|
interface DoomConfig {
|
|
5
4
|
modes?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.cts","names":[],"sources":["../../../src/schemas/plan/config.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.cts","names":[],"sources":["../../../src/schemas/plan/config.ts"],"mappings":";;UAiBiB;EACf;IACE,WAAW;;;iBAeC,gBAAgB,iBAAiB,mBAAmB;iBAKpD,iBAAiB,cAAc,YAAY,kBAAkB,aAAa;iBAQ1E,eAAe,kBAAkB,yBAAyB"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { PlanningAgentConfig, PlanningModeConfig, PlanningThinkingLevel, getHarnessState, globalDoomConfigPath as globalDoomConfigPath$1, loadHarnessState, parsePlanningModeConfig, repositoryDoomConfigPath, resolvePlanningPlansDirectory } from "@agimon-ai/doompi-config";
|
|
2
|
-
|
|
3
2
|
//#region src/schemas/plan/config.d.ts
|
|
4
3
|
interface DoomConfig {
|
|
5
4
|
modes?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.mts","names":[],"sources":["../../../src/schemas/plan/config.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.mts","names":[],"sources":["../../../src/schemas/plan/config.ts"],"mappings":";;UAiBiB;EACf;IACE,WAAW;;;iBAeC,kBAAgB,iBAAiB,mBAAmB;iBAKpD,mBAAiB,cAAc,YAAY,kBAAkB,aAAa;iBAQ1E,iBAAe,kBAAkB,yBAAyB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.mjs","names":["parseDoomConfig","parseSharedDoomConfig","mergeDoomConfigs","mergeSharedDoomConfigs","loadDoomConfig","loadSharedDoomConfig"],"sources":["../../../src/schemas/plan/config.ts"],"sourcesContent":["import {\n getHarnessState,\n globalDoomConfigPath,\n loadHarnessState,\n loadDoomConfig as loadSharedDoomConfig,\n mergeDoomConfigs as mergeSharedDoomConfigs,\n type PlanningAgentConfig,\n type PlanningModeConfig,\n type PlanningThinkingLevel,\n parsePlanningModeConfig,\n parseDoomConfig as parseSharedDoomConfig,\n repositoryDoomConfigPath,\n resolvePlanningPlansDirectory,\n} from '@agimon-ai/doompi-config';\n\nexport type { PlanningAgentConfig, PlanningModeConfig, PlanningThinkingLevel };\n\nexport interface DoomConfig {\n modes?: {\n planning?: PlanningModeConfig;\n };\n}\n\nconst DEFAULT_PROJECT_TRUST = 'ask' as const;\n\nexport {\n getHarnessState,\n globalDoomConfigPath,\n loadHarnessState,\n parsePlanningModeConfig,\n repositoryDoomConfigPath,\n resolvePlanningPlansDirectory,\n};\n\nexport function parseDoomConfig(content: string, filePath: string): DoomConfig {\n const config = parseSharedDoomConfig(content, filePath);\n return config.modes ? { modes: config.modes } : {};\n}\n\nexport function mergeDoomConfigs(globalConfig: DoomConfig, repositoryConfig: DoomConfig): DoomConfig {\n const merged = mergeSharedDoomConfigs(\n { ...globalConfig, projectTrust: DEFAULT_PROJECT_TRUST },\n { ...repositoryConfig, projectTrust: DEFAULT_PROJECT_TRUST },\n );\n return merged.modes ? { modes: merged.modes } : {};\n}\n\nexport function loadDoomConfig(repoRoot: string, homeDirectory?: string): DoomConfig {\n const config = loadSharedDoomConfig(repoRoot, homeDirectory);\n return config.modes ? { modes: config.modes } : {};\n}\n"],"mappings":"wQAkCA,SAAgBA,EAAgB,EAAiB,EAA8B,CAC7E,IAAM,EAASC,EAAsB,EAAS,
|
|
1
|
+
{"version":3,"file":"config.mjs","names":["parseDoomConfig","parseSharedDoomConfig","mergeDoomConfigs","mergeSharedDoomConfigs","loadDoomConfig","loadSharedDoomConfig"],"sources":["../../../src/schemas/plan/config.ts"],"sourcesContent":["import {\n getHarnessState,\n globalDoomConfigPath,\n loadHarnessState,\n loadDoomConfig as loadSharedDoomConfig,\n mergeDoomConfigs as mergeSharedDoomConfigs,\n type PlanningAgentConfig,\n type PlanningModeConfig,\n type PlanningThinkingLevel,\n parsePlanningModeConfig,\n parseDoomConfig as parseSharedDoomConfig,\n repositoryDoomConfigPath,\n resolvePlanningPlansDirectory,\n} from '@agimon-ai/doompi-config';\n\nexport type { PlanningAgentConfig, PlanningModeConfig, PlanningThinkingLevel };\n\nexport interface DoomConfig {\n modes?: {\n planning?: PlanningModeConfig;\n };\n}\n\nconst DEFAULT_PROJECT_TRUST = 'ask' as const;\n\nexport {\n getHarnessState,\n globalDoomConfigPath,\n loadHarnessState,\n parsePlanningModeConfig,\n repositoryDoomConfigPath,\n resolvePlanningPlansDirectory,\n};\n\nexport function parseDoomConfig(content: string, filePath: string): DoomConfig {\n const config = parseSharedDoomConfig(content, filePath);\n return config.modes ? { modes: config.modes } : {};\n}\n\nexport function mergeDoomConfigs(globalConfig: DoomConfig, repositoryConfig: DoomConfig): DoomConfig {\n const merged = mergeSharedDoomConfigs(\n { ...globalConfig, projectTrust: DEFAULT_PROJECT_TRUST },\n { ...repositoryConfig, projectTrust: DEFAULT_PROJECT_TRUST },\n );\n return merged.modes ? { modes: merged.modes } : {};\n}\n\nexport function loadDoomConfig(repoRoot: string, homeDirectory?: string): DoomConfig {\n const config = loadSharedDoomConfig(repoRoot, homeDirectory);\n return config.modes ? { modes: config.modes } : {};\n}\n"],"mappings":"wQAkCA,SAAgBA,EAAgB,EAAiB,EAA8B,CAC7E,IAAM,EAASC,EAAsB,EAAS,CAAQ,EACtD,OAAO,EAAO,MAAQ,CAAE,MAAO,EAAO,KAAM,EAAI,CAAC,CACnD,CAEA,SAAgBC,EAAiB,EAA0B,EAA0C,CACnG,IAAM,EAASC,EACb,CAAE,GAAG,EAAc,aAAc,KAAsB,EACvD,CAAE,GAAG,EAAkB,aAAc,KAAsB,CAC7D,EACA,OAAO,EAAO,MAAQ,CAAE,MAAO,EAAO,KAAM,EAAI,CAAC,CACnD,CAEA,SAAgBC,EAAe,EAAkB,EAAoC,CACnF,IAAM,EAASC,EAAqB,EAAU,CAAa,EAC3D,OAAO,EAAO,MAAQ,CAAE,MAAO,EAAO,KAAM,EAAI,CAAC,CACnD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
let e=require("@agimon-ai/doompi-config"),t=require("@agimon-ai/doompi-extension-contracts/config");const n=`planning`,r=[`modes`,n],i=`main`,a=`subagents`,o=`inherit the session model`,s=`inherit`,c=[{id:`main.model`,label:`main model`,keyPath:[...r,i,`model`],placeholder:o,detail:`Model the main agent switches to while plan mode is on.`,read:e=>e?.main?.model},{id:`main.thinking`,label:`main thinking`,keyPath:[...r,i,`thinking`],placeholder:s,detail:`Thinking level appended to the main model while planning.`,options:e.DOOM_PLANNING_THINKING_LEVELS,read:e=>e?.main?.thinking},{id:`subagents.model`,label:`subagent model`,keyPath:[...r,a,`model`],placeholder:o,detail:`Model forced onto delegated planning subagents.`,read:e=>e?.subagents?.model},{id:`subagents.thinking`,label:`subagent thinking`,keyPath:[...r,a,`thinking`],placeholder:s,detail:`Thinking level appended to the subagent model.`,options:e.DOOM_PLANNING_THINKING_LEVELS,read:e=>e?.subagents?.thinking},{id:`plansdirectory`,label:`plans directory`,keyPath:[...r,`plansDirectory`],placeholder:`~/.pi/plans`,detail:`Absolute, repo-relative, or under ~. Written plans land here.`,read:e=>e?.plansDirectory}];function l(e){return c.find(t=>t.id===e)}function u(e){return e.options?.map(e=>({id:e,label:e,action:t.CONFIG_ACTION.set}))}function d(e,t){let r=c.map(t=>{let n=t.read(e),r=u(t);return{id:t.id,label:t.label,kind:r?`enum`:`text`,keyPath:t.keyPath.join(`.`),placeholder:t.placeholder,detail:t.detail,...n?{value:n}:{},...r?{choices:r}:{}}});return[{id:n,title:`planning`,order:30,detail:`plan mode`,fields:r,...t?{notice:t,noticeLevel:`error`}:{}}]}exports.PLAN_CONFIG_SECTION_ID=n,exports.PLAN_SETTINGS=c,exports.planConfigSections=d,exports.planSettingByFieldId=l;
|
|
2
2
|
//# sourceMappingURL=planConfig.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planConfig.cjs","names":["DOOM_PLANNING_THINKING_LEVELS","CONFIG_ACTION"],"sources":["../../../src/schemas/plan/planConfig.ts"],"sourcesContent":["/**\n * Plan mode's slice of the `SPC e c` config panel.\n *\n * Plan mode reads `modes.planning` from disk on every activation, so an edit\n * here lands on the next time the mode is turned on with no restart and nothing\n * to invalidate.\n *\n * The descriptor table is the whole design: the panel renders it and the write\n * handler looks the key path back up in it, so adding a setting means adding a\n * row rather than a case.\n */\n\nimport { DOOM_PLANNING_THINKING_LEVELS } from '@agimon-ai/doompi-config';\nimport {\n CONFIG_ACTION,\n type ConfigChoice,\n type ConfigField,\n type ConfigSection,\n} from '@agimon-ai/doompi-extension-contracts/config';\nimport type { PlanningModeConfig } from './config.ts';\n\nexport const PLAN_CONFIG_SECTION_ID = 'planning';\nconst SECTION_ORDER = 30;\nconst PLANNING_PATH = ['modes', PLAN_CONFIG_SECTION_ID] as const;\nconst MAIN_KEY = 'main';\nconst SUBAGENTS_KEY = 'subagents';\n/** Both agents fall back to the session's own settings when left unset. */\nconst INHERIT_MODEL = 'inherit the session model';\nconst INHERIT_THINKING = 'inherit';\n\ninterface PlanSettingDescriptor {\n readonly id: string;\n readonly label: string;\n readonly keyPath: readonly string[];\n readonly placeholder: string;\n readonly detail: string;\n /** Present for a closed set; the panel offers these rather than free text. */\n readonly options?: readonly string[];\n readonly read: (config: PlanningModeConfig | undefined) => string | undefined;\n}\n\nexport const PLAN_SETTINGS: readonly PlanSettingDescriptor[] = [\n {\n id: 'main.model',\n label: 'main model',\n keyPath: [...PLANNING_PATH, MAIN_KEY, 'model'],\n placeholder: INHERIT_MODEL,\n detail: 'Model the main agent switches to while plan mode is on.',\n read: (config) => config?.main?.model,\n },\n {\n id: 'main.thinking',\n label: 'main thinking',\n keyPath: [...PLANNING_PATH, MAIN_KEY, 'thinking'],\n placeholder: INHERIT_THINKING,\n detail: 'Thinking level appended to the main model while planning.',\n options: DOOM_PLANNING_THINKING_LEVELS,\n read: (config) => config?.main?.thinking,\n },\n {\n id: 'subagents.model',\n label: 'subagent model',\n keyPath: [...PLANNING_PATH, SUBAGENTS_KEY, 'model'],\n placeholder: INHERIT_MODEL,\n detail: 'Model forced onto delegated planning subagents.',\n read: (config) => config?.subagents?.model,\n },\n {\n id: 'subagents.thinking',\n label: 'subagent thinking',\n keyPath: [...PLANNING_PATH, SUBAGENTS_KEY, 'thinking'],\n placeholder: INHERIT_THINKING,\n detail: 'Thinking level appended to the subagent model.',\n options: DOOM_PLANNING_THINKING_LEVELS,\n read: (config) => config?.subagents?.thinking,\n },\n {\n id: 'plansdirectory',\n label: 'plans directory',\n keyPath: [...PLANNING_PATH, 'plansDirectory'],\n placeholder: '~/.pi/plans',\n detail: 'Absolute, repo-relative, or under ~. Written plans land here.',\n read: (config) => config?.plansDirectory,\n },\n];\n\nexport function planSettingByFieldId(fieldId: string): PlanSettingDescriptor | undefined {\n return PLAN_SETTINGS.find((setting) => setting.id === fieldId);\n}\n\nfunction choicesFor(setting: PlanSettingDescriptor): ConfigChoice[] | undefined {\n // `set` rather than a bespoke action: choosing a level is the same write as\n // typing one, so it shares the handler.\n return setting.options?.map((option) => ({ id: option, label: option, action: CONFIG_ACTION.set }));\n}\n\nexport function planConfigSections(config: PlanningModeConfig | undefined, notice?: string): readonly ConfigSection[] {\n const fields: ConfigField[] = PLAN_SETTINGS.map((setting) => {\n const value = setting.read(config);\n const choices = choicesFor(setting);\n return {\n id: setting.id,\n label: setting.label,\n kind: choices ? ('enum' as const) : ('text' as const),\n keyPath: setting.keyPath.join('.'),\n placeholder: setting.placeholder,\n detail: setting.detail,\n ...(value ? { value } : {}),\n ...(choices ? { choices } : {}),\n };\n });\n return [\n {\n id: PLAN_CONFIG_SECTION_ID,\n title: 'planning',\n order: SECTION_ORDER,\n detail: 'plan mode',\n fields,\n ...(notice ? { notice, noticeLevel: 'error' as const } : {}),\n },\n ];\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"planConfig.cjs","names":["DOOM_PLANNING_THINKING_LEVELS","CONFIG_ACTION"],"sources":["../../../src/schemas/plan/planConfig.ts"],"sourcesContent":["/**\n * Plan mode's slice of the `SPC e c` config panel.\n *\n * Plan mode reads `modes.planning` from disk on every activation, so an edit\n * here lands on the next time the mode is turned on with no restart and nothing\n * to invalidate.\n *\n * The descriptor table is the whole design: the panel renders it and the write\n * handler looks the key path back up in it, so adding a setting means adding a\n * row rather than a case.\n */\n\nimport { DOOM_PLANNING_THINKING_LEVELS } from '@agimon-ai/doompi-config';\nimport {\n CONFIG_ACTION,\n type ConfigChoice,\n type ConfigField,\n type ConfigSection,\n} from '@agimon-ai/doompi-extension-contracts/config';\nimport type { PlanningModeConfig } from './config.ts';\n\nexport const PLAN_CONFIG_SECTION_ID = 'planning';\nconst SECTION_ORDER = 30;\nconst PLANNING_PATH = ['modes', PLAN_CONFIG_SECTION_ID] as const;\nconst MAIN_KEY = 'main';\nconst SUBAGENTS_KEY = 'subagents';\n/** Both agents fall back to the session's own settings when left unset. */\nconst INHERIT_MODEL = 'inherit the session model';\nconst INHERIT_THINKING = 'inherit';\n\ninterface PlanSettingDescriptor {\n readonly id: string;\n readonly label: string;\n readonly keyPath: readonly string[];\n readonly placeholder: string;\n readonly detail: string;\n /** Present for a closed set; the panel offers these rather than free text. */\n readonly options?: readonly string[];\n readonly read: (config: PlanningModeConfig | undefined) => string | undefined;\n}\n\nexport const PLAN_SETTINGS: readonly PlanSettingDescriptor[] = [\n {\n id: 'main.model',\n label: 'main model',\n keyPath: [...PLANNING_PATH, MAIN_KEY, 'model'],\n placeholder: INHERIT_MODEL,\n detail: 'Model the main agent switches to while plan mode is on.',\n read: (config) => config?.main?.model,\n },\n {\n id: 'main.thinking',\n label: 'main thinking',\n keyPath: [...PLANNING_PATH, MAIN_KEY, 'thinking'],\n placeholder: INHERIT_THINKING,\n detail: 'Thinking level appended to the main model while planning.',\n options: DOOM_PLANNING_THINKING_LEVELS,\n read: (config) => config?.main?.thinking,\n },\n {\n id: 'subagents.model',\n label: 'subagent model',\n keyPath: [...PLANNING_PATH, SUBAGENTS_KEY, 'model'],\n placeholder: INHERIT_MODEL,\n detail: 'Model forced onto delegated planning subagents.',\n read: (config) => config?.subagents?.model,\n },\n {\n id: 'subagents.thinking',\n label: 'subagent thinking',\n keyPath: [...PLANNING_PATH, SUBAGENTS_KEY, 'thinking'],\n placeholder: INHERIT_THINKING,\n detail: 'Thinking level appended to the subagent model.',\n options: DOOM_PLANNING_THINKING_LEVELS,\n read: (config) => config?.subagents?.thinking,\n },\n {\n id: 'plansdirectory',\n label: 'plans directory',\n keyPath: [...PLANNING_PATH, 'plansDirectory'],\n placeholder: '~/.pi/plans',\n detail: 'Absolute, repo-relative, or under ~. Written plans land here.',\n read: (config) => config?.plansDirectory,\n },\n];\n\nexport function planSettingByFieldId(fieldId: string): PlanSettingDescriptor | undefined {\n return PLAN_SETTINGS.find((setting) => setting.id === fieldId);\n}\n\nfunction choicesFor(setting: PlanSettingDescriptor): ConfigChoice[] | undefined {\n // `set` rather than a bespoke action: choosing a level is the same write as\n // typing one, so it shares the handler.\n return setting.options?.map((option) => ({ id: option, label: option, action: CONFIG_ACTION.set }));\n}\n\nexport function planConfigSections(config: PlanningModeConfig | undefined, notice?: string): readonly ConfigSection[] {\n const fields: ConfigField[] = PLAN_SETTINGS.map((setting) => {\n const value = setting.read(config);\n const choices = choicesFor(setting);\n return {\n id: setting.id,\n label: setting.label,\n kind: choices ? ('enum' as const) : ('text' as const),\n keyPath: setting.keyPath.join('.'),\n placeholder: setting.placeholder,\n detail: setting.detail,\n ...(value ? { value } : {}),\n ...(choices ? { choices } : {}),\n };\n });\n return [\n {\n id: PLAN_CONFIG_SECTION_ID,\n title: 'planning',\n order: SECTION_ORDER,\n detail: 'plan mode',\n fields,\n ...(notice ? { notice, noticeLevel: 'error' as const } : {}),\n },\n ];\n}\n"],"mappings":"oGAqBA,MAAa,EAAyB,WAEhC,EAAgB,CAAC,QAAS,CAAsB,EAChD,EAAW,OACX,EAAgB,YAEhB,EAAgB,4BAChB,EAAmB,UAaZ,EAAkD,CAC7D,CACE,GAAI,aACJ,MAAO,aACP,QAAS,CAAC,GAAG,EAAe,EAAU,OAAO,EAC7C,YAAa,EACb,OAAQ,0DACR,KAAO,GAAW,GAAQ,MAAM,KAClC,EACA,CACE,GAAI,gBACJ,MAAO,gBACP,QAAS,CAAC,GAAG,EAAe,EAAU,UAAU,EAChD,YAAa,EACb,OAAQ,4DACR,QAASA,EAAAA,8BACT,KAAO,GAAW,GAAQ,MAAM,QAClC,EACA,CACE,GAAI,kBACJ,MAAO,iBACP,QAAS,CAAC,GAAG,EAAe,EAAe,OAAO,EAClD,YAAa,EACb,OAAQ,kDACR,KAAO,GAAW,GAAQ,WAAW,KACvC,EACA,CACE,GAAI,qBACJ,MAAO,oBACP,QAAS,CAAC,GAAG,EAAe,EAAe,UAAU,EACrD,YAAa,EACb,OAAQ,iDACR,QAASA,EAAAA,8BACT,KAAO,GAAW,GAAQ,WAAW,QACvC,EACA,CACE,GAAI,iBACJ,MAAO,kBACP,QAAS,CAAC,GAAG,EAAe,gBAAgB,EAC5C,YAAa,cACb,OAAQ,gEACR,KAAO,GAAW,GAAQ,cAC5B,CACF,EAEA,SAAgB,EAAqB,EAAoD,CACvF,OAAO,EAAc,KAAM,GAAY,EAAQ,KAAO,CAAO,CAC/D,CAEA,SAAS,EAAW,EAA4D,CAG9E,OAAO,EAAQ,SAAS,IAAK,IAAY,CAAE,GAAI,EAAQ,MAAO,EAAQ,OAAQC,EAAAA,cAAc,GAAI,EAAE,CACpG,CAEA,SAAgB,EAAmB,EAAwC,EAA2C,CACpH,IAAM,EAAwB,EAAc,IAAK,GAAY,CAC3D,IAAM,EAAQ,EAAQ,KAAK,CAAM,EAC3B,EAAU,EAAW,CAAO,EAClC,MAAO,CACL,GAAI,EAAQ,GACZ,MAAO,EAAQ,MACf,KAAM,EAAW,OAAoB,OACrC,QAAS,EAAQ,QAAQ,KAAK,GAAG,EACjC,YAAa,EAAQ,YACrB,OAAQ,EAAQ,OAChB,GAAI,EAAQ,CAAE,OAAM,EAAI,CAAC,EACzB,GAAI,EAAU,CAAE,SAAQ,EAAI,CAAC,CAC/B,CACF,CAAC,EACD,MAAO,CACL,CACE,GAAI,EACJ,MAAO,WACP,MAAO,GACP,OAAQ,YACR,SACA,GAAI,EAAS,CAAE,SAAQ,YAAa,OAAiB,EAAI,CAAC,CAC5D,CACF,CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planConfig.d.cts","names":[],"sources":["../../../src/schemas/plan/planConfig.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"planConfig.d.cts","names":[],"sources":["../../../src/schemas/plan/planConfig.ts"],"mappings":";;;cAqBa;UASH;WACC;WACA;WACA;WACA;WACA;;WAEA;WACA,OAAO,QAAQ;;cAGb,wBAAwB;iBA6CrB,qBAAqB,kBAAkB;iBAUvC,mBAAmB,QAAQ,gCAAgC,2BAA2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planConfig.d.mts","names":[],"sources":["../../../src/schemas/plan/planConfig.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"planConfig.d.mts","names":[],"sources":["../../../src/schemas/plan/planConfig.ts"],"mappings":";;;cAqBa;UASH;WACC;WACA;WACA;WACA;WACA;;WAEA;WACA,OAAO,QAAQ;;cAGb,wBAAwB;iBA6CrB,qBAAqB,kBAAkB;iBAUvC,mBAAmB,QAAQ,gCAAgC,2BAA2B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{DOOM_PLANNING_THINKING_LEVELS as e}from"@agimon-ai/doompi-config";import{CONFIG_ACTION as t}from"@agimon-ai/doompi-extension-contracts/config";const n=`planning`,r=[`modes`,n],i=`main`,a=`subagents`,o=`inherit the session model`,s=`inherit`,c=[{id:`main.model`,label:`main model`,keyPath:[...r,i,`model`],placeholder:o,detail:`Model the main agent switches to while plan mode is on.`,read:e=>e?.main?.model},{id:`main.thinking`,label:`main thinking`,keyPath:[...r,i,`thinking`],placeholder:s,detail:`Thinking level appended to the main model while planning.`,options:e,read:e=>e?.main?.thinking},{id:`subagents.model`,label:`subagent model`,keyPath:[...r,a,`model`],placeholder:o,detail:`Model forced onto delegated planning subagents.`,read:e=>e?.subagents?.model},{id:`subagents.thinking`,label:`subagent thinking`,keyPath:[...r,a,`thinking`],placeholder:s,detail:`Thinking level appended to the subagent model.`,options:e,read:e=>e?.subagents?.thinking},{id:`plansdirectory`,label:`plans directory`,keyPath:[...r,`plansDirectory`],placeholder:`~/.pi/plans`,detail:`Absolute, repo-relative, or under ~. Written plans land here.`,read:e=>e?.plansDirectory}];function l(e){return c.find(t=>t.id===e)}function u(e){return e.options?.map(e=>({id:e,label:e,action:t.set}))}function d(e,t){
|
|
1
|
+
import{DOOM_PLANNING_THINKING_LEVELS as e}from"@agimon-ai/doompi-config";import{CONFIG_ACTION as t}from"@agimon-ai/doompi-extension-contracts/config";const n=`planning`,r=[`modes`,n],i=`main`,a=`subagents`,o=`inherit the session model`,s=`inherit`,c=[{id:`main.model`,label:`main model`,keyPath:[...r,i,`model`],placeholder:o,detail:`Model the main agent switches to while plan mode is on.`,read:e=>e?.main?.model},{id:`main.thinking`,label:`main thinking`,keyPath:[...r,i,`thinking`],placeholder:s,detail:`Thinking level appended to the main model while planning.`,options:e,read:e=>e?.main?.thinking},{id:`subagents.model`,label:`subagent model`,keyPath:[...r,a,`model`],placeholder:o,detail:`Model forced onto delegated planning subagents.`,read:e=>e?.subagents?.model},{id:`subagents.thinking`,label:`subagent thinking`,keyPath:[...r,a,`thinking`],placeholder:s,detail:`Thinking level appended to the subagent model.`,options:e,read:e=>e?.subagents?.thinking},{id:`plansdirectory`,label:`plans directory`,keyPath:[...r,`plansDirectory`],placeholder:`~/.pi/plans`,detail:`Absolute, repo-relative, or under ~. Written plans land here.`,read:e=>e?.plansDirectory}];function l(e){return c.find(t=>t.id===e)}function u(e){return e.options?.map(e=>({id:e,label:e,action:t.set}))}function d(e,t){let r=c.map(t=>{let n=t.read(e),r=u(t);return{id:t.id,label:t.label,kind:r?`enum`:`text`,keyPath:t.keyPath.join(`.`),placeholder:t.placeholder,detail:t.detail,...n?{value:n}:{},...r?{choices:r}:{}}});return[{id:n,title:`planning`,order:30,detail:`plan mode`,fields:r,...t?{notice:t,noticeLevel:`error`}:{}}]}export{n as PLAN_CONFIG_SECTION_ID,c as PLAN_SETTINGS,d as planConfigSections,l as planSettingByFieldId};
|
|
2
2
|
//# sourceMappingURL=planConfig.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planConfig.mjs","names":[],"sources":["../../../src/schemas/plan/planConfig.ts"],"sourcesContent":["/**\n * Plan mode's slice of the `SPC e c` config panel.\n *\n * Plan mode reads `modes.planning` from disk on every activation, so an edit\n * here lands on the next time the mode is turned on with no restart and nothing\n * to invalidate.\n *\n * The descriptor table is the whole design: the panel renders it and the write\n * handler looks the key path back up in it, so adding a setting means adding a\n * row rather than a case.\n */\n\nimport { DOOM_PLANNING_THINKING_LEVELS } from '@agimon-ai/doompi-config';\nimport {\n CONFIG_ACTION,\n type ConfigChoice,\n type ConfigField,\n type ConfigSection,\n} from '@agimon-ai/doompi-extension-contracts/config';\nimport type { PlanningModeConfig } from './config.ts';\n\nexport const PLAN_CONFIG_SECTION_ID = 'planning';\nconst SECTION_ORDER = 30;\nconst PLANNING_PATH = ['modes', PLAN_CONFIG_SECTION_ID] as const;\nconst MAIN_KEY = 'main';\nconst SUBAGENTS_KEY = 'subagents';\n/** Both agents fall back to the session's own settings when left unset. */\nconst INHERIT_MODEL = 'inherit the session model';\nconst INHERIT_THINKING = 'inherit';\n\ninterface PlanSettingDescriptor {\n readonly id: string;\n readonly label: string;\n readonly keyPath: readonly string[];\n readonly placeholder: string;\n readonly detail: string;\n /** Present for a closed set; the panel offers these rather than free text. */\n readonly options?: readonly string[];\n readonly read: (config: PlanningModeConfig | undefined) => string | undefined;\n}\n\nexport const PLAN_SETTINGS: readonly PlanSettingDescriptor[] = [\n {\n id: 'main.model',\n label: 'main model',\n keyPath: [...PLANNING_PATH, MAIN_KEY, 'model'],\n placeholder: INHERIT_MODEL,\n detail: 'Model the main agent switches to while plan mode is on.',\n read: (config) => config?.main?.model,\n },\n {\n id: 'main.thinking',\n label: 'main thinking',\n keyPath: [...PLANNING_PATH, MAIN_KEY, 'thinking'],\n placeholder: INHERIT_THINKING,\n detail: 'Thinking level appended to the main model while planning.',\n options: DOOM_PLANNING_THINKING_LEVELS,\n read: (config) => config?.main?.thinking,\n },\n {\n id: 'subagents.model',\n label: 'subagent model',\n keyPath: [...PLANNING_PATH, SUBAGENTS_KEY, 'model'],\n placeholder: INHERIT_MODEL,\n detail: 'Model forced onto delegated planning subagents.',\n read: (config) => config?.subagents?.model,\n },\n {\n id: 'subagents.thinking',\n label: 'subagent thinking',\n keyPath: [...PLANNING_PATH, SUBAGENTS_KEY, 'thinking'],\n placeholder: INHERIT_THINKING,\n detail: 'Thinking level appended to the subagent model.',\n options: DOOM_PLANNING_THINKING_LEVELS,\n read: (config) => config?.subagents?.thinking,\n },\n {\n id: 'plansdirectory',\n label: 'plans directory',\n keyPath: [...PLANNING_PATH, 'plansDirectory'],\n placeholder: '~/.pi/plans',\n detail: 'Absolute, repo-relative, or under ~. Written plans land here.',\n read: (config) => config?.plansDirectory,\n },\n];\n\nexport function planSettingByFieldId(fieldId: string): PlanSettingDescriptor | undefined {\n return PLAN_SETTINGS.find((setting) => setting.id === fieldId);\n}\n\nfunction choicesFor(setting: PlanSettingDescriptor): ConfigChoice[] | undefined {\n // `set` rather than a bespoke action: choosing a level is the same write as\n // typing one, so it shares the handler.\n return setting.options?.map((option) => ({ id: option, label: option, action: CONFIG_ACTION.set }));\n}\n\nexport function planConfigSections(config: PlanningModeConfig | undefined, notice?: string): readonly ConfigSection[] {\n const fields: ConfigField[] = PLAN_SETTINGS.map((setting) => {\n const value = setting.read(config);\n const choices = choicesFor(setting);\n return {\n id: setting.id,\n label: setting.label,\n kind: choices ? ('enum' as const) : ('text' as const),\n keyPath: setting.keyPath.join('.'),\n placeholder: setting.placeholder,\n detail: setting.detail,\n ...(value ? { value } : {}),\n ...(choices ? { choices } : {}),\n };\n });\n return [\n {\n id: PLAN_CONFIG_SECTION_ID,\n title: 'planning',\n order: SECTION_ORDER,\n detail: 'plan mode',\n fields,\n ...(notice ? { notice, noticeLevel: 'error' as const } : {}),\n },\n ];\n}\n"],"mappings":"sJAqBA,MAAa,EAAyB,WAEhC,EAAgB,CAAC,QAAS,
|
|
1
|
+
{"version":3,"file":"planConfig.mjs","names":[],"sources":["../../../src/schemas/plan/planConfig.ts"],"sourcesContent":["/**\n * Plan mode's slice of the `SPC e c` config panel.\n *\n * Plan mode reads `modes.planning` from disk on every activation, so an edit\n * here lands on the next time the mode is turned on with no restart and nothing\n * to invalidate.\n *\n * The descriptor table is the whole design: the panel renders it and the write\n * handler looks the key path back up in it, so adding a setting means adding a\n * row rather than a case.\n */\n\nimport { DOOM_PLANNING_THINKING_LEVELS } from '@agimon-ai/doompi-config';\nimport {\n CONFIG_ACTION,\n type ConfigChoice,\n type ConfigField,\n type ConfigSection,\n} from '@agimon-ai/doompi-extension-contracts/config';\nimport type { PlanningModeConfig } from './config.ts';\n\nexport const PLAN_CONFIG_SECTION_ID = 'planning';\nconst SECTION_ORDER = 30;\nconst PLANNING_PATH = ['modes', PLAN_CONFIG_SECTION_ID] as const;\nconst MAIN_KEY = 'main';\nconst SUBAGENTS_KEY = 'subagents';\n/** Both agents fall back to the session's own settings when left unset. */\nconst INHERIT_MODEL = 'inherit the session model';\nconst INHERIT_THINKING = 'inherit';\n\ninterface PlanSettingDescriptor {\n readonly id: string;\n readonly label: string;\n readonly keyPath: readonly string[];\n readonly placeholder: string;\n readonly detail: string;\n /** Present for a closed set; the panel offers these rather than free text. */\n readonly options?: readonly string[];\n readonly read: (config: PlanningModeConfig | undefined) => string | undefined;\n}\n\nexport const PLAN_SETTINGS: readonly PlanSettingDescriptor[] = [\n {\n id: 'main.model',\n label: 'main model',\n keyPath: [...PLANNING_PATH, MAIN_KEY, 'model'],\n placeholder: INHERIT_MODEL,\n detail: 'Model the main agent switches to while plan mode is on.',\n read: (config) => config?.main?.model,\n },\n {\n id: 'main.thinking',\n label: 'main thinking',\n keyPath: [...PLANNING_PATH, MAIN_KEY, 'thinking'],\n placeholder: INHERIT_THINKING,\n detail: 'Thinking level appended to the main model while planning.',\n options: DOOM_PLANNING_THINKING_LEVELS,\n read: (config) => config?.main?.thinking,\n },\n {\n id: 'subagents.model',\n label: 'subagent model',\n keyPath: [...PLANNING_PATH, SUBAGENTS_KEY, 'model'],\n placeholder: INHERIT_MODEL,\n detail: 'Model forced onto delegated planning subagents.',\n read: (config) => config?.subagents?.model,\n },\n {\n id: 'subagents.thinking',\n label: 'subagent thinking',\n keyPath: [...PLANNING_PATH, SUBAGENTS_KEY, 'thinking'],\n placeholder: INHERIT_THINKING,\n detail: 'Thinking level appended to the subagent model.',\n options: DOOM_PLANNING_THINKING_LEVELS,\n read: (config) => config?.subagents?.thinking,\n },\n {\n id: 'plansdirectory',\n label: 'plans directory',\n keyPath: [...PLANNING_PATH, 'plansDirectory'],\n placeholder: '~/.pi/plans',\n detail: 'Absolute, repo-relative, or under ~. Written plans land here.',\n read: (config) => config?.plansDirectory,\n },\n];\n\nexport function planSettingByFieldId(fieldId: string): PlanSettingDescriptor | undefined {\n return PLAN_SETTINGS.find((setting) => setting.id === fieldId);\n}\n\nfunction choicesFor(setting: PlanSettingDescriptor): ConfigChoice[] | undefined {\n // `set` rather than a bespoke action: choosing a level is the same write as\n // typing one, so it shares the handler.\n return setting.options?.map((option) => ({ id: option, label: option, action: CONFIG_ACTION.set }));\n}\n\nexport function planConfigSections(config: PlanningModeConfig | undefined, notice?: string): readonly ConfigSection[] {\n const fields: ConfigField[] = PLAN_SETTINGS.map((setting) => {\n const value = setting.read(config);\n const choices = choicesFor(setting);\n return {\n id: setting.id,\n label: setting.label,\n kind: choices ? ('enum' as const) : ('text' as const),\n keyPath: setting.keyPath.join('.'),\n placeholder: setting.placeholder,\n detail: setting.detail,\n ...(value ? { value } : {}),\n ...(choices ? { choices } : {}),\n };\n });\n return [\n {\n id: PLAN_CONFIG_SECTION_ID,\n title: 'planning',\n order: SECTION_ORDER,\n detail: 'plan mode',\n fields,\n ...(notice ? { notice, noticeLevel: 'error' as const } : {}),\n },\n ];\n}\n"],"mappings":"sJAqBA,MAAa,EAAyB,WAEhC,EAAgB,CAAC,QAAS,CAAsB,EAChD,EAAW,OACX,EAAgB,YAEhB,EAAgB,4BAChB,EAAmB,UAaZ,EAAkD,CAC7D,CACE,GAAI,aACJ,MAAO,aACP,QAAS,CAAC,GAAG,EAAe,EAAU,OAAO,EAC7C,YAAa,EACb,OAAQ,0DACR,KAAO,GAAW,GAAQ,MAAM,KAClC,EACA,CACE,GAAI,gBACJ,MAAO,gBACP,QAAS,CAAC,GAAG,EAAe,EAAU,UAAU,EAChD,YAAa,EACb,OAAQ,4DACR,QAAS,EACT,KAAO,GAAW,GAAQ,MAAM,QAClC,EACA,CACE,GAAI,kBACJ,MAAO,iBACP,QAAS,CAAC,GAAG,EAAe,EAAe,OAAO,EAClD,YAAa,EACb,OAAQ,kDACR,KAAO,GAAW,GAAQ,WAAW,KACvC,EACA,CACE,GAAI,qBACJ,MAAO,oBACP,QAAS,CAAC,GAAG,EAAe,EAAe,UAAU,EACrD,YAAa,EACb,OAAQ,iDACR,QAAS,EACT,KAAO,GAAW,GAAQ,WAAW,QACvC,EACA,CACE,GAAI,iBACJ,MAAO,kBACP,QAAS,CAAC,GAAG,EAAe,gBAAgB,EAC5C,YAAa,cACb,OAAQ,gEACR,KAAO,GAAW,GAAQ,cAC5B,CACF,EAEA,SAAgB,EAAqB,EAAoD,CACvF,OAAO,EAAc,KAAM,GAAY,EAAQ,KAAO,CAAO,CAC/D,CAEA,SAAS,EAAW,EAA4D,CAG9E,OAAO,EAAQ,SAAS,IAAK,IAAY,CAAE,GAAI,EAAQ,MAAO,EAAQ,OAAQ,EAAc,GAAI,EAAE,CACpG,CAEA,SAAgB,EAAmB,EAAwC,EAA2C,CACpH,IAAM,EAAwB,EAAc,IAAK,GAAY,CAC3D,IAAM,EAAQ,EAAQ,KAAK,CAAM,EAC3B,EAAU,EAAW,CAAO,EAClC,MAAO,CACL,GAAI,EAAQ,GACZ,MAAO,EAAQ,MACf,KAAM,EAAW,OAAoB,OACrC,QAAS,EAAQ,QAAQ,KAAK,GAAG,EACjC,YAAa,EAAQ,YACrB,OAAQ,EAAQ,OAChB,GAAI,EAAQ,CAAE,OAAM,EAAI,CAAC,EACzB,GAAI,EAAU,CAAE,SAAQ,EAAI,CAAC,CAC/B,CACF,CAAC,EACD,MAAO,CACL,CACE,GAAI,EACJ,MAAO,WACP,MAAO,GACP,OAAQ,YACR,SACA,GAAI,EAAS,CAAE,SAAQ,YAAa,OAAiB,EAAI,CAAC,CAC5D,CACF,CACF"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
let e=require("node:buffer");const t=`@agimon-ai/doompi-plan`,n=`claude`,r=`fable`,i=`claude/fable-plan-v1`,a=[/(?:api[_-]?key|access[_-]?token|client[_-]?secret|password|private[_-]?key|authorization|bearer)\s*[:=]/iu,/-----BEGIN [A-Z ]*PRIVATE KEY-----/u,/\bsk-[A-Za-z0-9_-]{16,}\b/u,/\bgh[pousr]_[A-Za-z0-9_]{16,}\b/u];function o(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function s(e){for(let t of e){let e=t.codePointAt(0);if(e!==void 0&&(e<=31||e===127))return!0}return!1}function c(e){return a.some(t=>t.test(e))}function l(t,n,r=!0){if(typeof t!=`string`)throw Error(`${n} must be a string.`);let i=t.trim();if(!i&&r)throw Error(`${n} must not be empty.`);if(e.Buffer.byteLength(i,`utf8`)>4096||s(i))throw Error(`${n} exceeds the bounded Fable text limit or contains control characters.`);if(c(i))throw Error(`${n} appears to contain a credential.`);return i}function u(e,t,n=!0){if(!Array.isArray(e))throw Error(`${t} must be an array.`);if(e.length>24)throw Error(`${t} exceeds the bounded item limit.`);let r=e.map((e,n)=>l(e,`${t}[${n}]`));if(n&&r.length===0)throw Error(`${t} must contain at least one item.`);return r}function d(e,t){if(typeof e!=`string`)throw Error(`${t} must be a string.`);let n=e.trim();if(!n||n.length>512||s(n))throw Error(`${t} is not a safe source path.`);if(c(n))throw Error(`${t} appears to contain a credential.`);return n}function f(e){if(!Array.isArray(e))throw Error(`verifiedFindings must be an array.`);if(e.length>24)throw Error(`verifiedFindings exceeds the bounded item limit.`);return e.map((e,t)=>{if(!o(e))throw Error(`verifiedFindings[${t}] must be an object.`);if(Object.keys(e).some(e=>e!==`path`&&e!==`finding`))throw Error(`verifiedFindings[${t}] contains an unsupported field.`);return{path:d(e.path,`verifiedFindings[${t}].path`),finding:l(e.finding,`verifiedFindings[${t}].finding`)}})}function p(e,t,n){let r=new Set(t),i=Object.keys(e).find(e=>!r.has(e));if(i)throw Error(`${n} contains unsupported field '${i}'.`)}function m(t){if(!o(t))throw Error(`Fable packet must be an object.`);p(t,[`goal`,`constraints`,`decisions`,`verifiedFindings`,`inferredFindings`,`unresolvedQuestions`,`currentPlan`],`Fable packet`);let n={goal:u(t.goal,`goal`),constraints:u(t.constraints,`constraints`,!1),decisions:u(t.decisions,`decisions`,!1),verifiedFindings:f(t.verifiedFindings),inferredFindings:u(t.inferredFindings,`inferredFindings`,!1),unresolvedQuestions:u(t.unresolvedQuestions,`unresolvedQuestions`,!1),...t.currentPlan===void 0?{}:{currentPlan:l(t.currentPlan,`currentPlan`,!1)}};if(e.Buffer.byteLength(JSON.stringify(n),`utf8`)>32768)throw Error(`Fable packet exceeds the bounded packet size.`);return n}function h(e){return c([e.draft,e.review].filter(e=>e!==void 0).join(`
|
|
2
2
|
`))?{operationId:e.operationId,status:`failed`,stage:`failed`,durationMs:e.durationMs,errorCode:`unsafe_output`}:e}function g(e,t){return{operationId:e,status:`timed_out`,stage:`interrupted`,durationMs:Math.max(0,Date.now()-t),errorCode:`timeout`}}function _(e){let a=e.newOperationId??(()=>crypto.randomUUID()),o,s=(t=`Fable operation cancelled.`)=>{let n=o;if(n){if(!n.cancelSent){n.cancelSent=!0;try{e.broker?.cancel(n.operationId,t)}catch(t){e.onError?.(t)}}n.controller.abort(Error(t))}};return{run:async(c,l)=>{if(o)throw Error(`A Fable operation is already active for this session.`);if(!e.isAuthorized())throw Error(`The Fable capability profile is not authorized.`);let u=m(c),d=`fable-${a()}`,f=Date.now(),p=new AbortController;o={operationId:d,controller:p,cancelSent:!1},e.onStage?.(`draft`);let _=()=>p.abort(l?.reason);l&&(l.addEventListener(`abort`,_,{once:!0}),l.aborted&&_());let v={requester:t,operationId:d,runtime:n,model:r,profile:i,packet:u},y,b=!1;try{if(!e.broker)return g(d,f);let t=e.broker.start(v,p.signal),n=new Promise(e=>{p.signal.addEventListener(`abort`,()=>{b||e({operationId:d,status:`cancelled`,stage:`cancelled`,durationMs:Math.max(0,Date.now()-f),errorCode:`cancelled`})},{once:!0})}),r=e.timeoutMs===void 0?void 0:new Promise(t=>{y=setTimeout(()=>{b=!0,s(`Fable operation timed out.`),t(g(d,f))},e.timeoutMs)}),i=h(r===void 0?await Promise.race([t,n]):await Promise.race([t,r,n]));return e.onStage?.(i.status===`completed`?`completed`:i.status===`cancelled`?`cancelled`:i.stage),i}catch(t){e.onError?.(t);let n={operationId:d,status:`failed`,stage:`failed`,durationMs:Math.max(0,Date.now()-f),errorCode:`unavailable`};return e.onStage?.(`failed`),n}finally{y&&clearTimeout(y),l&&l.removeEventListener(`abort`,_),o=void 0}},cancel:s,isActive:()=>o!==void 0}}exports.FABLE_PLAN_MODEL=r,exports.FABLE_PLAN_PROFILE=i,exports.FABLE_PLAN_REQUESTER=t,exports.FABLE_PLAN_RUNTIME=n,exports.FABLE_PROVIDER_SOURCE=`@agimon-ai/doompi-team`,exports.MAX_FABLE_ARRAY_ITEMS=24,exports.MAX_FABLE_PACKET_BYTES=32768,exports.MAX_FABLE_TEXT_BYTES=4096,exports.containsSuspectedCredential=c,exports.createFablePlanFlow=_,exports.sanitizeFablePacket=m;
|
|
3
3
|
//# sourceMappingURL=fableFlow.cjs.map
|