@agimon-ai/doompi-skill 0.0.1-alpha.7 → 0.0.1-alpha.8
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.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
let e=require("@earendil-works/pi-coding-agent"),t=require("@agimon-ai/doompi-extension-contracts/help");function n(e){return e.slice(0,t.DOOM_HELP_MAX_DIAGNOSTIC_LENGTH)}function r(t){return{name:t.name,description:t.description,filePath:t.filePath,baseDir:t.baseDir,sourceInfo:(0,e.createSyntheticSourceInfo)(t.filePath,{source:t.source,scope:`temporary`,origin:`package`,baseDir:t.baseDir}),disableModelInvocation:!1}}function i(e){return!e||e.activation===`inactive`?[]:[...e.skills].sort((e,t)=>e.source.localeCompare(t.source)||e.name.localeCompare(t.name)||e.filePath.localeCompare(t.filePath))}function a(e){return e?e.diagnostics.map(e=>n(`Help ${e.source??`host`} [${e.code}]: ${e.message}`)):[]}function o(e,o,s=[]){let c=new Set([...e.normalSkills.map(e=>e.name),...e.deferredSkills.
|
|
1
|
+
let e=require("@earendil-works/pi-coding-agent"),t=require("@agimon-ai/doompi-extension-contracts/help");function n(e){return e.slice(0,t.DOOM_HELP_MAX_DIAGNOSTIC_LENGTH)}function r(t){return{name:t.name,description:t.description,filePath:t.filePath,baseDir:t.baseDir,sourceInfo:(0,e.createSyntheticSourceInfo)(t.filePath,{source:t.source,scope:`temporary`,origin:`package`,baseDir:t.baseDir}),disableModelInvocation:!1}}function i(e){return!e||e.activation===`inactive`?[]:[...e.skills].sort((e,t)=>e.source.localeCompare(t.source)||e.name.localeCompare(t.name)||e.filePath.localeCompare(t.filePath))}function a(e){return e?e.diagnostics.map(e=>n(`Help ${e.source??`host`} [${e.code}]: ${e.message}`)):[]}function o(e,o,s=[]){let c=new Set([...e.normalSkills.map(e=>e.name),...e.normalSkillNames??[]]),l=e.deferredSkills.filter(e=>!c.has(e.name)),u=new Set([...c,...l.map(e=>e.name)]),d=[],f=[...a(o),...s.map(n)];for(let e of i(o)){if(u.has(e.name)){f.push(n(`Help ${e.source} [HELP_SKILL_COLLISION]: '${e.name}' was ignored because a normal skill wins.`));continue}u.add(e.name),d.push(r(e))}let p=f.slice(0,t.DOOM_HELP_MAX_DIAGNOSTICS),m=[...l,...d];return{skills:[...e.normalSkills,...m],additionalSkills:m,helpSkills:d,diagnostics:p,diagnosticKey:`${o?.hostGeneration??`absent`}:${o?.revision??0}:${p.join(``)}`}}function s(){let e,t=!1;return{bind(n){if(t)throw Error(`The Help skill view is disposed.`);let r=Symbol(n.generation),i=e;e=void 0,i?.unsubscribe();let a={token:r,snapshot:n.getSnapshot(),unsubscribe:n.subscribeSnapshot(t=>{e?.token===r&&(e.snapshot=t)})};e=a;let o=!1;return()=>{o||(o=!0,a.unsubscribe(),e?.token===r&&(e=void 0))}},merge(t){return o(t,e?.snapshot)},dispose(){if(t)return;t=!0;let n=e;e=void 0,n?.unsubscribe()}}}exports.createActiveHelpSkillView=s,exports.mergeActiveHelpSkills=o;
|
|
2
2
|
//# sourceMappingURL=helpSkills.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpSkills.cjs","names":["DOOM_HELP_MAX_DIAGNOSTIC_LENGTH","createSyntheticSourceInfo","DOOM_HELP_MAX_DIAGNOSTICS"],"sources":["../../src/adapters/helpSkills.ts"],"sourcesContent":["import {\n DOOM_HELP_MAX_DIAGNOSTIC_LENGTH,\n DOOM_HELP_MAX_DIAGNOSTICS,\n type DoomHelpService,\n type DoomHelpSkill,\n type DoomHelpSnapshot,\n} from '@agimon-ai/doompi-extension-contracts/help';\nimport { createSyntheticSourceInfo, type Skill } from '@earendil-works/pi-coding-agent';\n\nexport interface SkillInventoryInput {\n normalSkills: readonly Skill[];\n deferredSkills: readonly Skill[];\n /** Names from Pi's command catalog when full normal Skill records are unavailable. */\n normalSkillNames?: readonly string[];\n}\n\nexport interface MergedSkillInventory {\n /**
|
|
1
|
+
{"version":3,"file":"helpSkills.cjs","names":["DOOM_HELP_MAX_DIAGNOSTIC_LENGTH","createSyntheticSourceInfo","DOOM_HELP_MAX_DIAGNOSTICS"],"sources":["../../src/adapters/helpSkills.ts"],"sourcesContent":["import {\n DOOM_HELP_MAX_DIAGNOSTIC_LENGTH,\n DOOM_HELP_MAX_DIAGNOSTICS,\n type DoomHelpService,\n type DoomHelpSkill,\n type DoomHelpSnapshot,\n} from '@agimon-ai/doompi-extension-contracts/help';\nimport { createSyntheticSourceInfo, type Skill } from '@earendil-works/pi-coding-agent';\n\nexport interface SkillInventoryInput {\n normalSkills: readonly Skill[];\n deferredSkills: readonly Skill[];\n /** Names from Pi's command catalog when full normal Skill records are unavailable. */\n normalSkillNames?: readonly string[];\n}\n\nexport interface MergedSkillInventory {\n /** Pi-native, unique deferred, then accepted Help skills in invocation-precedence order. */\n skills: readonly Skill[];\n /** Deferred and Help skills that are absent from Pi's existing prompt inventory. */\n additionalSkills: readonly Skill[];\n /** Accepted Help skills, retained separately for the Help catalog group. */\n helpSkills: readonly Skill[];\n diagnostics: readonly string[];\n diagnosticKey: string;\n}\n\nexport interface ActiveHelpSkillView {\n bind(service: DoomHelpService): () => void;\n merge(input: SkillInventoryInput): MergedSkillInventory;\n dispose(): void;\n}\n\nfunction boundedDiagnostic(message: string): string {\n return message.slice(0, DOOM_HELP_MAX_DIAGNOSTIC_LENGTH);\n}\n\nfunction toSkill(skill: DoomHelpSkill): Skill {\n return {\n name: skill.name,\n description: skill.description,\n filePath: skill.filePath,\n baseDir: skill.baseDir,\n sourceInfo: createSyntheticSourceInfo(skill.filePath, {\n source: skill.source,\n scope: 'temporary',\n origin: 'package',\n baseDir: skill.baseDir,\n }),\n disableModelInvocation: false,\n };\n}\n\nfunction activeHelpSkills(snapshot: DoomHelpSnapshot | undefined): DoomHelpSkill[] {\n if (!snapshot || snapshot.activation === 'inactive') return [];\n return [...snapshot.skills].sort(\n (left, right) =>\n left.source.localeCompare(right.source) ||\n left.name.localeCompare(right.name) ||\n left.filePath.localeCompare(right.filePath),\n );\n}\n\nfunction snapshotDiagnostics(snapshot: DoomHelpSnapshot | undefined): string[] {\n if (!snapshot) return [];\n return snapshot.diagnostics.map((entry) =>\n boundedDiagnostic(`Help ${entry.source ?? 'host'} [${entry.code}]: ${entry.message}`),\n );\n}\n\nexport function mergeActiveHelpSkills(\n input: SkillInventoryInput,\n snapshot: DoomHelpSnapshot | undefined,\n clientDiagnostics: readonly string[] = [],\n): MergedSkillInventory {\n const nativeNames = new Set([...input.normalSkills.map((skill) => skill.name), ...(input.normalSkillNames ?? [])]);\n const deferredSkills = input.deferredSkills.filter((skill) => !nativeNames.has(skill.name));\n const occupiedNames = new Set([...nativeNames, ...deferredSkills.map((skill) => skill.name)]);\n const helpSkills: Skill[] = [];\n const diagnostics = [...snapshotDiagnostics(snapshot), ...clientDiagnostics.map(boundedDiagnostic)];\n\n for (const candidate of activeHelpSkills(snapshot)) {\n if (occupiedNames.has(candidate.name)) {\n diagnostics.push(\n boundedDiagnostic(\n `Help ${candidate.source} [HELP_SKILL_COLLISION]: '${candidate.name}' was ignored because a normal skill wins.`,\n ),\n );\n continue;\n }\n occupiedNames.add(candidate.name);\n helpSkills.push(toSkill(candidate));\n }\n\n const boundedDiagnostics = diagnostics.slice(0, DOOM_HELP_MAX_DIAGNOSTICS);\n const additionalSkills = [...deferredSkills, ...helpSkills];\n return {\n skills: [...input.normalSkills, ...additionalSkills],\n additionalSkills,\n helpSkills,\n diagnostics: boundedDiagnostics,\n diagnosticKey: `${snapshot?.hostGeneration ?? 'absent'}:${snapshot?.revision ?? 0}:${boundedDiagnostics.join('\\u0001')}`,\n };\n}\n\nexport function createActiveHelpSkillView(): ActiveHelpSkillView {\n let binding: { readonly token: symbol; snapshot: DoomHelpSnapshot; unsubscribe(): void } | undefined;\n let disposed = false;\n return {\n bind(service) {\n if (disposed) throw new Error('The Help skill view is disposed.');\n const token = Symbol(service.generation);\n const current = binding;\n binding = undefined;\n current?.unsubscribe();\n const next: { readonly token: symbol; snapshot: DoomHelpSnapshot; unsubscribe(): void } = {\n token,\n snapshot: service.getSnapshot(),\n unsubscribe: service.subscribeSnapshot((snapshot) => {\n if (binding?.token === token) binding.snapshot = snapshot;\n }),\n };\n binding = next;\n let bindingDisposed = false;\n return () => {\n if (bindingDisposed) return;\n bindingDisposed = true;\n next.unsubscribe();\n if (binding?.token === token) binding = undefined;\n };\n },\n merge(input) {\n return mergeActiveHelpSkills(input, binding?.snapshot);\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n const current = binding;\n binding = undefined;\n current?.unsubscribe();\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createSyntheticSourceInfo as e}from"@earendil-works/pi-coding-agent";import{DOOM_HELP_MAX_DIAGNOSTICS as t,DOOM_HELP_MAX_DIAGNOSTIC_LENGTH as n}from"@agimon-ai/doompi-extension-contracts/help";function r(e){return e.slice(0,n)}function i(t){return{name:t.name,description:t.description,filePath:t.filePath,baseDir:t.baseDir,sourceInfo:e(t.filePath,{source:t.source,scope:`temporary`,origin:`package`,baseDir:t.baseDir}),disableModelInvocation:!1}}function a(e){return!e||e.activation===`inactive`?[]:[...e.skills].sort((e,t)=>e.source.localeCompare(t.source)||e.name.localeCompare(t.name)||e.filePath.localeCompare(t.filePath))}function o(e){return e?e.diagnostics.map(e=>r(`Help ${e.source??`host`} [${e.code}]: ${e.message}`)):[]}function s(e,n,s=[]){let c=new Set([...e.normalSkills.map(e=>e.name),...e.deferredSkills.
|
|
1
|
+
import{createSyntheticSourceInfo as e}from"@earendil-works/pi-coding-agent";import{DOOM_HELP_MAX_DIAGNOSTICS as t,DOOM_HELP_MAX_DIAGNOSTIC_LENGTH as n}from"@agimon-ai/doompi-extension-contracts/help";function r(e){return e.slice(0,n)}function i(t){return{name:t.name,description:t.description,filePath:t.filePath,baseDir:t.baseDir,sourceInfo:e(t.filePath,{source:t.source,scope:`temporary`,origin:`package`,baseDir:t.baseDir}),disableModelInvocation:!1}}function a(e){return!e||e.activation===`inactive`?[]:[...e.skills].sort((e,t)=>e.source.localeCompare(t.source)||e.name.localeCompare(t.name)||e.filePath.localeCompare(t.filePath))}function o(e){return e?e.diagnostics.map(e=>r(`Help ${e.source??`host`} [${e.code}]: ${e.message}`)):[]}function s(e,n,s=[]){let c=new Set([...e.normalSkills.map(e=>e.name),...e.normalSkillNames??[]]),l=e.deferredSkills.filter(e=>!c.has(e.name)),u=new Set([...c,...l.map(e=>e.name)]),d=[],f=[...o(n),...s.map(r)];for(let e of a(n)){if(u.has(e.name)){f.push(r(`Help ${e.source} [HELP_SKILL_COLLISION]: '${e.name}' was ignored because a normal skill wins.`));continue}u.add(e.name),d.push(i(e))}let p=f.slice(0,t),m=[...l,...d];return{skills:[...e.normalSkills,...m],additionalSkills:m,helpSkills:d,diagnostics:p,diagnosticKey:`${n?.hostGeneration??`absent`}:${n?.revision??0}:${p.join(``)}`}}function c(){let e,t=!1;return{bind(n){if(t)throw Error(`The Help skill view is disposed.`);let r=Symbol(n.generation),i=e;e=void 0,i?.unsubscribe();let a={token:r,snapshot:n.getSnapshot(),unsubscribe:n.subscribeSnapshot(t=>{e?.token===r&&(e.snapshot=t)})};e=a;let o=!1;return()=>{o||(o=!0,a.unsubscribe(),e?.token===r&&(e=void 0))}},merge(t){return s(t,e?.snapshot)},dispose(){if(t)return;t=!0;let n=e;e=void 0,n?.unsubscribe()}}}export{c as createActiveHelpSkillView,s as mergeActiveHelpSkills};
|
|
2
2
|
//# sourceMappingURL=helpSkills.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpSkills.mjs","names":[],"sources":["../../src/adapters/helpSkills.ts"],"sourcesContent":["import {\n DOOM_HELP_MAX_DIAGNOSTIC_LENGTH,\n DOOM_HELP_MAX_DIAGNOSTICS,\n type DoomHelpService,\n type DoomHelpSkill,\n type DoomHelpSnapshot,\n} from '@agimon-ai/doompi-extension-contracts/help';\nimport { createSyntheticSourceInfo, type Skill } from '@earendil-works/pi-coding-agent';\n\nexport interface SkillInventoryInput {\n normalSkills: readonly Skill[];\n deferredSkills: readonly Skill[];\n /** Names from Pi's command catalog when full normal Skill records are unavailable. */\n normalSkillNames?: readonly string[];\n}\n\nexport interface MergedSkillInventory {\n /**
|
|
1
|
+
{"version":3,"file":"helpSkills.mjs","names":[],"sources":["../../src/adapters/helpSkills.ts"],"sourcesContent":["import {\n DOOM_HELP_MAX_DIAGNOSTIC_LENGTH,\n DOOM_HELP_MAX_DIAGNOSTICS,\n type DoomHelpService,\n type DoomHelpSkill,\n type DoomHelpSnapshot,\n} from '@agimon-ai/doompi-extension-contracts/help';\nimport { createSyntheticSourceInfo, type Skill } from '@earendil-works/pi-coding-agent';\n\nexport interface SkillInventoryInput {\n normalSkills: readonly Skill[];\n deferredSkills: readonly Skill[];\n /** Names from Pi's command catalog when full normal Skill records are unavailable. */\n normalSkillNames?: readonly string[];\n}\n\nexport interface MergedSkillInventory {\n /** Pi-native, unique deferred, then accepted Help skills in invocation-precedence order. */\n skills: readonly Skill[];\n /** Deferred and Help skills that are absent from Pi's existing prompt inventory. */\n additionalSkills: readonly Skill[];\n /** Accepted Help skills, retained separately for the Help catalog group. */\n helpSkills: readonly Skill[];\n diagnostics: readonly string[];\n diagnosticKey: string;\n}\n\nexport interface ActiveHelpSkillView {\n bind(service: DoomHelpService): () => void;\n merge(input: SkillInventoryInput): MergedSkillInventory;\n dispose(): void;\n}\n\nfunction boundedDiagnostic(message: string): string {\n return message.slice(0, DOOM_HELP_MAX_DIAGNOSTIC_LENGTH);\n}\n\nfunction toSkill(skill: DoomHelpSkill): Skill {\n return {\n name: skill.name,\n description: skill.description,\n filePath: skill.filePath,\n baseDir: skill.baseDir,\n sourceInfo: createSyntheticSourceInfo(skill.filePath, {\n source: skill.source,\n scope: 'temporary',\n origin: 'package',\n baseDir: skill.baseDir,\n }),\n disableModelInvocation: false,\n };\n}\n\nfunction activeHelpSkills(snapshot: DoomHelpSnapshot | undefined): DoomHelpSkill[] {\n if (!snapshot || snapshot.activation === 'inactive') return [];\n return [...snapshot.skills].sort(\n (left, right) =>\n left.source.localeCompare(right.source) ||\n left.name.localeCompare(right.name) ||\n left.filePath.localeCompare(right.filePath),\n );\n}\n\nfunction snapshotDiagnostics(snapshot: DoomHelpSnapshot | undefined): string[] {\n if (!snapshot) return [];\n return snapshot.diagnostics.map((entry) =>\n boundedDiagnostic(`Help ${entry.source ?? 'host'} [${entry.code}]: ${entry.message}`),\n );\n}\n\nexport function mergeActiveHelpSkills(\n input: SkillInventoryInput,\n snapshot: DoomHelpSnapshot | undefined,\n clientDiagnostics: readonly string[] = [],\n): MergedSkillInventory {\n const nativeNames = new Set([...input.normalSkills.map((skill) => skill.name), ...(input.normalSkillNames ?? [])]);\n const deferredSkills = input.deferredSkills.filter((skill) => !nativeNames.has(skill.name));\n const occupiedNames = new Set([...nativeNames, ...deferredSkills.map((skill) => skill.name)]);\n const helpSkills: Skill[] = [];\n const diagnostics = [...snapshotDiagnostics(snapshot), ...clientDiagnostics.map(boundedDiagnostic)];\n\n for (const candidate of activeHelpSkills(snapshot)) {\n if (occupiedNames.has(candidate.name)) {\n diagnostics.push(\n boundedDiagnostic(\n `Help ${candidate.source} [HELP_SKILL_COLLISION]: '${candidate.name}' was ignored because a normal skill wins.`,\n ),\n );\n continue;\n }\n occupiedNames.add(candidate.name);\n helpSkills.push(toSkill(candidate));\n }\n\n const boundedDiagnostics = diagnostics.slice(0, DOOM_HELP_MAX_DIAGNOSTICS);\n const additionalSkills = [...deferredSkills, ...helpSkills];\n return {\n skills: [...input.normalSkills, ...additionalSkills],\n additionalSkills,\n helpSkills,\n diagnostics: boundedDiagnostics,\n diagnosticKey: `${snapshot?.hostGeneration ?? 'absent'}:${snapshot?.revision ?? 0}:${boundedDiagnostics.join('\\u0001')}`,\n };\n}\n\nexport function createActiveHelpSkillView(): ActiveHelpSkillView {\n let binding: { readonly token: symbol; snapshot: DoomHelpSnapshot; unsubscribe(): void } | undefined;\n let disposed = false;\n return {\n bind(service) {\n if (disposed) throw new Error('The Help skill view is disposed.');\n const token = Symbol(service.generation);\n const current = binding;\n binding = undefined;\n current?.unsubscribe();\n const next: { readonly token: symbol; snapshot: DoomHelpSnapshot; unsubscribe(): void } = {\n token,\n snapshot: service.getSnapshot(),\n unsubscribe: service.subscribeSnapshot((snapshot) => {\n if (binding?.token === token) binding.snapshot = snapshot;\n }),\n };\n binding = next;\n let bindingDisposed = false;\n return () => {\n if (bindingDisposed) return;\n bindingDisposed = true;\n next.unsubscribe();\n if (binding?.token === token) binding = undefined;\n };\n },\n merge(input) {\n return mergeActiveHelpSkills(input, binding?.snapshot);\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n const current = binding;\n binding = undefined;\n current?.unsubscribe();\n },\n };\n}\n"],"mappings":"wMAiCA,SAAS,EAAkB,EAAyB,CAClD,OAAO,EAAQ,MAAM,EAAG,CAA+B,CACzD,CAEA,SAAS,EAAQ,EAA6B,CAC5C,MAAO,CACL,KAAM,EAAM,KACZ,YAAa,EAAM,YACnB,SAAU,EAAM,SAChB,QAAS,EAAM,QACf,WAAY,EAA0B,EAAM,SAAU,CACpD,OAAQ,EAAM,OACd,MAAO,YACP,OAAQ,UACR,QAAS,EAAM,OACjB,CAAC,EACD,uBAAwB,EAC1B,CACF,CAEA,SAAS,EAAiB,EAAyD,CAEjF,MADI,CAAC,GAAY,EAAS,aAAe,WAAmB,CAAC,EACtD,CAAC,GAAG,EAAS,MAAM,CAAC,CAAC,MACzB,EAAM,IACL,EAAK,OAAO,cAAc,EAAM,MAAM,GACtC,EAAK,KAAK,cAAc,EAAM,IAAI,GAClC,EAAK,SAAS,cAAc,EAAM,QAAQ,CAC9C,CACF,CAEA,SAAS,EAAoB,EAAkD,CAE7E,OADK,EACE,EAAS,YAAY,IAAK,GAC/B,EAAkB,QAAQ,EAAM,QAAU,OAAO,IAAI,EAAM,KAAK,KAAK,EAAM,SAAS,CACtF,EAHsB,CAAC,CAIzB,CAEA,SAAgB,EACd,EACA,EACA,EAAuC,CAAC,EAClB,CACtB,IAAM,EAAc,IAAI,IAAI,CAAC,GAAG,EAAM,aAAa,IAAK,GAAU,EAAM,IAAI,EAAG,GAAI,EAAM,kBAAoB,CAAC,CAAE,CAAC,EAC3G,EAAiB,EAAM,eAAe,OAAQ,GAAU,CAAC,EAAY,IAAI,EAAM,IAAI,CAAC,EACpF,EAAgB,IAAI,IAAI,CAAC,GAAG,EAAa,GAAG,EAAe,IAAK,GAAU,EAAM,IAAI,CAAC,CAAC,EACtF,EAAsB,CAAC,EACvB,EAAc,CAAC,GAAG,EAAoB,CAAQ,EAAG,GAAG,EAAkB,IAAI,CAAiB,CAAC,EAElG,IAAK,IAAM,KAAa,EAAiB,CAAQ,EAAG,CAClD,GAAI,EAAc,IAAI,EAAU,IAAI,EAAG,CACrC,EAAY,KACV,EACE,QAAQ,EAAU,OAAO,4BAA4B,EAAU,KAAK,2CACtE,CACF,EACA,QACF,CACA,EAAc,IAAI,EAAU,IAAI,EAChC,EAAW,KAAK,EAAQ,CAAS,CAAC,CACpC,CAEA,IAAM,EAAqB,EAAY,MAAM,EAAG,CAAyB,EACnE,EAAmB,CAAC,GAAG,EAAgB,GAAG,CAAU,EAC1D,MAAO,CACL,OAAQ,CAAC,GAAG,EAAM,aAAc,GAAG,CAAgB,EACnD,mBACA,aACA,YAAa,EACb,cAAe,GAAG,GAAU,gBAAkB,SAAS,GAAG,GAAU,UAAY,EAAE,GAAG,EAAmB,KAAK,GAAQ,GACvH,CACF,CAEA,SAAgB,GAAiD,CAC/D,IAAI,EACA,EAAW,GACf,MAAO,CACL,KAAK,EAAS,CACZ,GAAI,EAAU,MAAU,MAAM,kCAAkC,EAChE,IAAM,EAAQ,OAAO,EAAQ,UAAU,EACjC,EAAU,EAChB,EAAU,IAAA,GACV,GAAS,YAAY,EACrB,IAAM,EAAoF,CACxF,QACA,SAAU,EAAQ,YAAY,EAC9B,YAAa,EAAQ,kBAAmB,GAAa,CAC/C,GAAS,QAAU,IAAO,EAAQ,SAAW,EACnD,CAAC,CACH,EACA,EAAU,EACV,IAAI,EAAkB,GACtB,UAAa,CACP,IACJ,EAAkB,GAClB,EAAK,YAAY,EACb,GAAS,QAAU,IAAO,EAAU,IAAA,IAC1C,CACF,EACA,MAAM,EAAO,CACX,OAAO,EAAsB,EAAO,GAAS,QAAQ,CACvD,EACA,SAAU,CACR,GAAI,EAAU,OACd,EAAW,GACX,IAAM,EAAU,EAChB,EAAU,IAAA,GACV,GAAS,YAAY,CACvB,CACF,CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agimon-ai/doompi-skill",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.8",
|
|
4
4
|
"description": "Session skill catalogue, deferred skill discovery, and the skill browser for DoomPi.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent-skills",
|
|
@@ -53,11 +53,11 @@
|
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"@deepseek-ai/cordis": "4.0.1",
|
|
55
55
|
"gpt-tokenizer": "4.0.0",
|
|
56
|
-
"@agimon-ai/doompi-
|
|
57
|
-
"@agimon-ai/doompi-config": "0.0.1-alpha.
|
|
58
|
-
"@agimon-ai/doompi-
|
|
59
|
-
"@agimon-ai/doompi-
|
|
60
|
-
"@agimon-ai/doompi-
|
|
56
|
+
"@agimon-ai/doompi-domain": "0.0.1-alpha.8",
|
|
57
|
+
"@agimon-ai/doompi-config": "0.0.1-alpha.30",
|
|
58
|
+
"@agimon-ai/doompi-ui": "0.0.1-alpha.30",
|
|
59
|
+
"@agimon-ai/doompi-extension-contracts": "0.0.1-alpha.30",
|
|
60
|
+
"@agimon-ai/doompi-telemetry": "0.0.1-alpha.30"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@deepseek-ai/cordis": "4.0.1",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"tsdown": "0.22.14",
|
|
69
69
|
"typescript": "7.0.2",
|
|
70
70
|
"vitest": "4.1.11",
|
|
71
|
-
"@agimon-ai/vibe-lint-plugin-doom-extension": "0.0.1-alpha.
|
|
71
|
+
"@agimon-ai/vibe-lint-plugin-doom-extension": "0.0.1-alpha.28"
|
|
72
72
|
},
|
|
73
73
|
"peerDependencies": {
|
|
74
74
|
"@earendil-works/pi-coding-agent": "0.84.2",
|