@agimon-ai/doompi-cache 0.0.1-alpha.79 → 0.0.1-alpha.81
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/extensions/pi.cjs +15 -1
- package/dist/extensions/pi.cjs.map +1 -1
- package/dist/extensions/pi.d.mts.map +1 -1
- package/dist/extensions/pi.mjs +16 -2
- package/dist/extensions/pi.mjs.map +1 -1
- package/dist/{pi-cache-optimizer-OLTjpxH3.cjs → pi-cache-optimizer-VJG1vKKU.cjs} +2 -2
- package/dist/{pi-cache-optimizer-OLTjpxH3.cjs.map → pi-cache-optimizer-VJG1vKKU.cjs.map} +1 -1
- package/dist/{pi-cache-optimizer-DsNTCoBj.mjs → pi-cache-optimizer-z5yQQoac.mjs} +2 -2
- package/dist/{pi-cache-optimizer-DsNTCoBj.mjs.map → pi-cache-optimizer-z5yQQoac.mjs.map} +1 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/cacheHooks.cjs +2 -2
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/cacheHooks.cjs.map +1 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/cacheHooks.mjs +2 -2
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/cacheHooks.mjs.map +1 -1
- package/package.json +11 -11
|
@@ -11,7 +11,7 @@ function modelIdentity(model, payload) {
|
|
|
11
11
|
return {
|
|
12
12
|
virtualProvider: model?.provider,
|
|
13
13
|
virtualModel: model?.id,
|
|
14
|
-
api:
|
|
14
|
+
api: model?.api,
|
|
15
15
|
wireModel: typeof request.model === "string" ? request.model : void 0
|
|
16
16
|
};
|
|
17
17
|
}
|
|
@@ -26,7 +26,7 @@ const cacheHooks = [{
|
|
|
26
26
|
event: "before_provider_request",
|
|
27
27
|
handle(event, execution) {
|
|
28
28
|
const payload = record(event.payload);
|
|
29
|
-
const identity = modelIdentity(
|
|
29
|
+
const identity = modelIdentity(event.model, payload);
|
|
30
30
|
const modelFingerprint = require_index$2.createPromptCacheModelFingerprint(identity, require_index.sha256Base64Url);
|
|
31
31
|
const key = require_index$2.createPromptCacheKey(cacheNamespace({
|
|
32
32
|
sessionId: execution.sessionId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheHooks.cjs","names":["sha256Base64Url","canonicalJson","createPromptCacheModelFingerprint","createPromptCacheKey","rewritePromptCacheKey"],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/_lib/cacheHooks.ts"],"sourcesContent":["import { type DoomHeadlessHook } from '@agimon-ai/doompi-core/headless';\n\nimport { canonicalJson } from '../../../../../services/canonical';\nimport { sha256Base64Url } from '../../../../../services/digest';\nimport { createPromptCacheKey, createPromptCacheModelFingerprint } from '../../../../../services/namespace';\nimport { rewritePromptCacheKey } from '../../../../../services/providerPolicy';\nimport type { PromptCacheModelIdentity } from '../../../../../types/cache';\n\nfunction record(value: unknown): Readonly<Record<string, unknown>> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n ? (value as Readonly<Record<string, unknown>>)\n : {};\n}\n\nfunction modelIdentity(\n model: { provider: string; id: string } | undefined,\n payload: unknown,\n): PromptCacheModelIdentity {\n const request = record(payload);\n return {\n virtualProvider: model?.provider,\n virtualModel: model?.id,\n api:
|
|
1
|
+
{"version":3,"file":"cacheHooks.cjs","names":["sha256Base64Url","canonicalJson","createPromptCacheModelFingerprint","createPromptCacheKey","rewritePromptCacheKey"],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/_lib/cacheHooks.ts"],"sourcesContent":["import { type DoomHeadlessHook } from '@agimon-ai/doompi-core/headless';\n\nimport { canonicalJson } from '../../../../../services/canonical';\nimport { sha256Base64Url } from '../../../../../services/digest';\nimport { createPromptCacheKey, createPromptCacheModelFingerprint } from '../../../../../services/namespace';\nimport { rewritePromptCacheKey } from '../../../../../services/providerPolicy';\nimport type { PromptCacheModelIdentity } from '../../../../../types/cache';\n\nfunction record(value: unknown): Readonly<Record<string, unknown>> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n ? (value as Readonly<Record<string, unknown>>)\n : {};\n}\n\nfunction modelIdentity(\n model: { provider: string; id: string; api?: string } | undefined,\n payload: unknown,\n): PromptCacheModelIdentity {\n const request = record(payload);\n return {\n virtualProvider: model?.provider,\n virtualModel: model?.id,\n api: model?.api,\n wireModel: typeof request.model === 'string' ? request.model : undefined,\n };\n}\n\nfunction cacheNamespace(context: { sessionId: string; selection: Record<string, unknown> }): string {\n return `dph_${sha256Base64Url(canonicalJson({ version: 1, session: context.sessionId, selection: context.selection }))}`;\n}\n\nexport const cacheHooks: DoomHeadlessHook[] = [\n {\n event: 'before_provider_request',\n handle(event, execution) {\n const payload = record(event.payload);\n const identity = modelIdentity(event.model, payload);\n const modelFingerprint = createPromptCacheModelFingerprint(identity, sha256Base64Url);\n const key = createPromptCacheKey(\n cacheNamespace({\n sessionId: execution.sessionId,\n selection: execution.selection as unknown as Record<string, unknown>,\n }),\n 'parent',\n modelFingerprint,\n sha256Base64Url,\n );\n const rewritten = rewritePromptCacheKey(payload, identity.api, key, true);\n return rewritten === undefined ? undefined : { payload: rewritten };\n },\n },\n {\n event: 'session_shutdown',\n handle(_event, execution) {\n execution.client.setStatus('doom-cache', undefined);\n },\n },\n];\n"],"mappings":";;;;;AAQA,SAAS,OAAO,OAAmD;CACjE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,IACrE,QACD,CAAC;AACP;AAEA,SAAS,cACP,OACA,SAC0B;CAC1B,MAAM,UAAU,OAAO,OAAO;CAC9B,OAAO;EACL,iBAAiB,OAAO;EACxB,cAAc,OAAO;EACrB,KAAK,OAAO;EACZ,WAAW,OAAO,QAAQ,UAAU,WAAW,QAAQ,QAAQ,KAAA;CACjE;AACF;AAEA,SAAS,eAAe,SAA4E;CAClG,OAAO,OAAOA,cAAAA,gBAAgBC,gBAAAA,cAAc;EAAE,SAAS;EAAG,SAAS,QAAQ;EAAW,WAAW,QAAQ;CAAU,CAAC,CAAC;AACvH;AAEA,MAAa,aAAiC,CAC5C;CACE,OAAO;CACP,OAAO,OAAO,WAAW;EACvB,MAAM,UAAU,OAAO,MAAM,OAAO;EACpC,MAAM,WAAW,cAAc,MAAM,OAAO,OAAO;EACnD,MAAM,mBAAmBC,gBAAAA,kCAAkC,UAAUF,cAAAA,eAAe;EACpF,MAAM,MAAMG,gBAAAA,qBACV,eAAe;GACb,WAAW,UAAU;GACrB,WAAW,UAAU;EACvB,CAAC,GACD,UACA,kBACAH,cAAAA,eACF;EACA,MAAM,YAAYI,gBAAAA,sBAAsB,SAAS,SAAS,KAAK,KAAK,IAAI;EACxE,OAAO,cAAc,KAAA,IAAY,KAAA,IAAY,EAAE,SAAS,UAAU;CACpE;AACF,GACA;CACE,OAAO;CACP,OAAO,QAAQ,WAAW;EACxB,UAAU,OAAO,UAAU,cAAc,KAAA,CAAS;CACpD;AACF,CACF"}
|
|
@@ -11,7 +11,7 @@ function modelIdentity(model, payload) {
|
|
|
11
11
|
return {
|
|
12
12
|
virtualProvider: model?.provider,
|
|
13
13
|
virtualModel: model?.id,
|
|
14
|
-
api:
|
|
14
|
+
api: model?.api,
|
|
15
15
|
wireModel: typeof request.model === "string" ? request.model : void 0
|
|
16
16
|
};
|
|
17
17
|
}
|
|
@@ -26,7 +26,7 @@ const cacheHooks = [{
|
|
|
26
26
|
event: "before_provider_request",
|
|
27
27
|
handle(event, execution) {
|
|
28
28
|
const payload = record(event.payload);
|
|
29
|
-
const identity = modelIdentity(
|
|
29
|
+
const identity = modelIdentity(event.model, payload);
|
|
30
30
|
const modelFingerprint = createPromptCacheModelFingerprint(identity, sha256Base64Url);
|
|
31
31
|
const key = createPromptCacheKey(cacheNamespace({
|
|
32
32
|
sessionId: execution.sessionId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheHooks.mjs","names":[],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/_lib/cacheHooks.ts"],"sourcesContent":["import { type DoomHeadlessHook } from '@agimon-ai/doompi-core/headless';\n\nimport { canonicalJson } from '../../../../../services/canonical';\nimport { sha256Base64Url } from '../../../../../services/digest';\nimport { createPromptCacheKey, createPromptCacheModelFingerprint } from '../../../../../services/namespace';\nimport { rewritePromptCacheKey } from '../../../../../services/providerPolicy';\nimport type { PromptCacheModelIdentity } from '../../../../../types/cache';\n\nfunction record(value: unknown): Readonly<Record<string, unknown>> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n ? (value as Readonly<Record<string, unknown>>)\n : {};\n}\n\nfunction modelIdentity(\n model: { provider: string; id: string } | undefined,\n payload: unknown,\n): PromptCacheModelIdentity {\n const request = record(payload);\n return {\n virtualProvider: model?.provider,\n virtualModel: model?.id,\n api:
|
|
1
|
+
{"version":3,"file":"cacheHooks.mjs","names":[],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/_lib/cacheHooks.ts"],"sourcesContent":["import { type DoomHeadlessHook } from '@agimon-ai/doompi-core/headless';\n\nimport { canonicalJson } from '../../../../../services/canonical';\nimport { sha256Base64Url } from '../../../../../services/digest';\nimport { createPromptCacheKey, createPromptCacheModelFingerprint } from '../../../../../services/namespace';\nimport { rewritePromptCacheKey } from '../../../../../services/providerPolicy';\nimport type { PromptCacheModelIdentity } from '../../../../../types/cache';\n\nfunction record(value: unknown): Readonly<Record<string, unknown>> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n ? (value as Readonly<Record<string, unknown>>)\n : {};\n}\n\nfunction modelIdentity(\n model: { provider: string; id: string; api?: string } | undefined,\n payload: unknown,\n): PromptCacheModelIdentity {\n const request = record(payload);\n return {\n virtualProvider: model?.provider,\n virtualModel: model?.id,\n api: model?.api,\n wireModel: typeof request.model === 'string' ? request.model : undefined,\n };\n}\n\nfunction cacheNamespace(context: { sessionId: string; selection: Record<string, unknown> }): string {\n return `dph_${sha256Base64Url(canonicalJson({ version: 1, session: context.sessionId, selection: context.selection }))}`;\n}\n\nexport const cacheHooks: DoomHeadlessHook[] = [\n {\n event: 'before_provider_request',\n handle(event, execution) {\n const payload = record(event.payload);\n const identity = modelIdentity(event.model, payload);\n const modelFingerprint = createPromptCacheModelFingerprint(identity, sha256Base64Url);\n const key = createPromptCacheKey(\n cacheNamespace({\n sessionId: execution.sessionId,\n selection: execution.selection as unknown as Record<string, unknown>,\n }),\n 'parent',\n modelFingerprint,\n sha256Base64Url,\n );\n const rewritten = rewritePromptCacheKey(payload, identity.api, key, true);\n return rewritten === undefined ? undefined : { payload: rewritten };\n },\n },\n {\n event: 'session_shutdown',\n handle(_event, execution) {\n execution.client.setStatus('doom-cache', undefined);\n },\n },\n];\n"],"mappings":";;;;;AAQA,SAAS,OAAO,OAAmD;CACjE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,IACrE,QACD,CAAC;AACP;AAEA,SAAS,cACP,OACA,SAC0B;CAC1B,MAAM,UAAU,OAAO,OAAO;CAC9B,OAAO;EACL,iBAAiB,OAAO;EACxB,cAAc,OAAO;EACrB,KAAK,OAAO;EACZ,WAAW,OAAO,QAAQ,UAAU,WAAW,QAAQ,QAAQ,KAAA;CACjE;AACF;AAEA,SAAS,eAAe,SAA4E;CAClG,OAAO,OAAO,gBAAgB,cAAc;EAAE,SAAS;EAAG,SAAS,QAAQ;EAAW,WAAW,QAAQ;CAAU,CAAC,CAAC;AACvH;AAEA,MAAa,aAAiC,CAC5C;CACE,OAAO;CACP,OAAO,OAAO,WAAW;EACvB,MAAM,UAAU,OAAO,MAAM,OAAO;EACpC,MAAM,WAAW,cAAc,MAAM,OAAO,OAAO;EACnD,MAAM,mBAAmB,kCAAkC,UAAU,eAAe;EACpF,MAAM,MAAM,qBACV,eAAe;GACb,WAAW,UAAU;GACrB,WAAW,UAAU;EACvB,CAAC,GACD,UACA,kBACA,eACF;EACA,MAAM,YAAY,sBAAsB,SAAS,SAAS,KAAK,KAAK,IAAI;EACxE,OAAO,cAAc,KAAA,IAAY,KAAA,IAAY,EAAE,SAAS,UAAU;CACpE;AACF,GACA;CACE,OAAO;CACP,OAAO,QAAQ,WAAW;EACxB,UAAU,OAAO,UAAU,cAAc,KAAA,CAAS;CACpD;AACF,CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agimon-ai/doompi-cache",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.81",
|
|
4
4
|
"description": "Provider prompt cache policy and deterministic routing for DoomPi",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -63,24 +63,24 @@
|
|
|
63
63
|
"access": "public"
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@agimon-ai/doompi-config": "0.0.1-alpha.
|
|
67
|
-
"@agimon-ai/doompi-core": "0.0.1-alpha.
|
|
68
|
-
"@agimon-ai/doompi-minor-mode": "0.0.1-alpha.
|
|
66
|
+
"@agimon-ai/doompi-config": "0.0.1-alpha.114",
|
|
67
|
+
"@agimon-ai/doompi-core": "0.0.1-alpha.115",
|
|
68
|
+
"@agimon-ai/doompi-minor-mode": "0.0.1-alpha.115",
|
|
69
69
|
"@deepseek-ai/cordis": "4.0.4",
|
|
70
70
|
"pi-cache-optimizer": "2.8.11"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
|
-
"@agimon-ai/doompi-build": "0.0.1-alpha.
|
|
74
|
-
"@agimon-ai/vibe-lint-plugin-doom-extension": "0.0.1-alpha.
|
|
75
|
-
"@earendil-works/pi-coding-agent": "1.0.
|
|
76
|
-
"@types/node": "26.6.
|
|
77
|
-
"@vitest/coverage-v8": "5.0.
|
|
73
|
+
"@agimon-ai/doompi-build": "0.0.1-alpha.31",
|
|
74
|
+
"@agimon-ai/vibe-lint-plugin-doom-extension": "0.0.1-alpha.98",
|
|
75
|
+
"@earendil-works/pi-coding-agent": "1.0.2",
|
|
76
|
+
"@types/node": "26.6.4",
|
|
77
|
+
"@vitest/coverage-v8": "5.0.3",
|
|
78
78
|
"tsdown": "0.23.0",
|
|
79
79
|
"typescript": "7.0.2",
|
|
80
|
-
"vitest": "5.0.
|
|
80
|
+
"vitest": "5.0.3"
|
|
81
81
|
},
|
|
82
82
|
"peerDependencies": {
|
|
83
|
-
"@earendil-works/pi-coding-agent": "1.0.
|
|
83
|
+
"@earendil-works/pi-coding-agent": "1.0.2"
|
|
84
84
|
},
|
|
85
85
|
"peerDependenciesMeta": {
|
|
86
86
|
"@earendil-works/pi-coding-agent": {
|