@principles/core 1.153.0 → 1.155.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/runtime-v2/__tests__/architecture-regression.test.js +4 -0
- package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.js +16 -0
- package/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.js +2 -0
- package/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/proven-channel-baseline.test.js +13 -0
- package/dist/runtime-v2/__tests__/proven-channel-baseline.test.js.map +1 -1
- package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js +1 -0
- package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js.map +1 -1
- package/dist/runtime-v2/activation/__tests__/approval-completion-service.test.d.ts +21 -0
- package/dist/runtime-v2/activation/__tests__/approval-completion-service.test.d.ts.map +1 -0
- package/dist/runtime-v2/activation/__tests__/approval-completion-service.test.js +363 -0
- package/dist/runtime-v2/activation/__tests__/approval-completion-service.test.js.map +1 -0
- package/dist/runtime-v2/activation/__tests__/approval-queue.test.js +13 -0
- package/dist/runtime-v2/activation/__tests__/approval-queue.test.js.map +1 -1
- package/dist/runtime-v2/activation/__tests__/edit-then-approve.test.d.ts +20 -0
- package/dist/runtime-v2/activation/__tests__/edit-then-approve.test.d.ts.map +1 -0
- package/dist/runtime-v2/activation/__tests__/edit-then-approve.test.js +145 -0
- package/dist/runtime-v2/activation/__tests__/edit-then-approve.test.js.map +1 -0
- package/dist/runtime-v2/activation/__tests__/production-gate-deps.test.d.ts +15 -0
- package/dist/runtime-v2/activation/__tests__/production-gate-deps.test.d.ts.map +1 -0
- package/dist/runtime-v2/activation/__tests__/production-gate-deps.test.js +249 -0
- package/dist/runtime-v2/activation/__tests__/production-gate-deps.test.js.map +1 -0
- package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.js +22 -2
- package/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.js.map +1 -1
- package/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.d.ts +35 -0
- package/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.d.ts.map +1 -0
- package/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.js +511 -0
- package/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.js.map +1 -0
- package/dist/runtime-v2/activation/activation-dispatcher.d.ts.map +1 -1
- package/dist/runtime-v2/activation/activation-dispatcher.js +79 -0
- package/dist/runtime-v2/activation/activation-dispatcher.js.map +1 -1
- package/dist/runtime-v2/activation/activation-types.d.ts +48 -3
- package/dist/runtime-v2/activation/activation-types.d.ts.map +1 -1
- package/dist/runtime-v2/activation/activation-types.js +6 -0
- package/dist/runtime-v2/activation/activation-types.js.map +1 -1
- package/dist/runtime-v2/activation/approval-completion-service.d.ts +50 -0
- package/dist/runtime-v2/activation/approval-completion-service.d.ts.map +1 -0
- package/dist/runtime-v2/activation/approval-completion-service.js +160 -0
- package/dist/runtime-v2/activation/approval-completion-service.js.map +1 -0
- package/dist/runtime-v2/activation/approval-queue.d.ts +7 -1
- package/dist/runtime-v2/activation/approval-queue.d.ts.map +1 -1
- package/dist/runtime-v2/activation/approval-queue.js +14 -0
- package/dist/runtime-v2/activation/approval-queue.js.map +1 -1
- package/dist/runtime-v2/activation/index.d.ts +5 -2
- package/dist/runtime-v2/activation/index.d.ts.map +1 -1
- package/dist/runtime-v2/activation/index.js +8 -1
- package/dist/runtime-v2/activation/index.js.map +1 -1
- package/dist/runtime-v2/activation/memory-activation-state-store.d.ts +2 -2
- package/dist/runtime-v2/activation/memory-activation-state-store.d.ts.map +1 -1
- package/dist/runtime-v2/activation/memory-activation-state-store.js +4 -4
- package/dist/runtime-v2/activation/memory-activation-state-store.js.map +1 -1
- package/dist/runtime-v2/activation/memory-approval-store.d.ts +2 -1
- package/dist/runtime-v2/activation/memory-approval-store.d.ts.map +1 -1
- package/dist/runtime-v2/activation/memory-approval-store.js +18 -0
- package/dist/runtime-v2/activation/memory-approval-store.js.map +1 -1
- package/dist/runtime-v2/activation/production-gate-deps.d.ts +32 -0
- package/dist/runtime-v2/activation/production-gate-deps.d.ts.map +1 -0
- package/dist/runtime-v2/activation/production-gate-deps.js +179 -0
- package/dist/runtime-v2/activation/production-gate-deps.js.map +1 -0
- package/dist/runtime-v2/activation/sqlite-activation-state-store.d.ts +2 -2
- package/dist/runtime-v2/activation/sqlite-activation-state-store.d.ts.map +1 -1
- package/dist/runtime-v2/activation/sqlite-activation-state-store.js +10 -14
- package/dist/runtime-v2/activation/sqlite-activation-state-store.js.map +1 -1
- package/dist/runtime-v2/activation/sqlite-approval-store.d.ts +2 -1
- package/dist/runtime-v2/activation/sqlite-approval-store.d.ts.map +1 -1
- package/dist/runtime-v2/activation/sqlite-approval-store.js +24 -0
- package/dist/runtime-v2/activation/sqlite-approval-store.js.map +1 -1
- package/dist/runtime-v2/adapter/artificer-l2-adapter.d.ts +7 -0
- package/dist/runtime-v2/adapter/artificer-l2-adapter.d.ts.map +1 -1
- package/dist/runtime-v2/adapter/artificer-l2-adapter.js +93 -0
- package/dist/runtime-v2/adapter/artificer-l2-adapter.js.map +1 -1
- package/dist/runtime-v2/adapter/l2-agent-loop-adapter.d.ts +8 -0
- package/dist/runtime-v2/adapter/l2-agent-loop-adapter.d.ts.map +1 -1
- package/dist/runtime-v2/adapter/l2-agent-loop-adapter.js +1 -1
- package/dist/runtime-v2/adapter/l2-agent-loop-adapter.js.map +1 -1
- package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +2 -0
- package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +1 -1
- package/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
- package/dist/runtime-v2/feature-flags/feature-flag-contract.js +11 -0
- package/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
- package/dist/runtime-v2/index.d.ts +4 -4
- package/dist/runtime-v2/index.d.ts.map +1 -1
- package/dist/runtime-v2/index.js +2 -2
- package/dist/runtime-v2/index.js.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-runner.d.ts +27 -0
- package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-runner.js +129 -2
- package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
- package/dist/runtime-v2/proven-channel-baseline.d.ts.map +1 -1
- package/dist/runtime-v2/proven-channel-baseline.js +13 -0
- package/dist/runtime-v2/proven-channel-baseline.js.map +1 -1
- package/dist/runtime-v2/store/sqlite-connection.d.ts.map +1 -1
- package/dist/runtime-v2/store/sqlite-connection.js +12 -0
- package/dist/runtime-v2/store/sqlite-connection.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/index.ts"],"names":[],"mappings":"AA+BA,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,mCAAmC,EACnC,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGlE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,4EAA4E;AAC5E,0EAA0E;AAC1E,2DAA2D;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE,oEAAoE;AACpE,4EAA4E;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAG7E,OAAO,EACL,2BAA2B,EAC3B,QAAQ,IAAI,gBAAgB,EAC5B,uBAAuB,EACvB,4BAA4B,EAC5B,YAAY,EACZ,4BAA4B,GAC7B,MAAM,wCAAwC,CAAC"}
|
|
@@ -3,8 +3,8 @@ export declare class MemoryActivationStateStore implements ActivationStateReadMo
|
|
|
3
3
|
private readonly activations;
|
|
4
4
|
getActivationStatus(idempotencyKey: string): Promise<ActivationStatusRecord | null>;
|
|
5
5
|
recordActivation(record: ActivationStatusRecord): Promise<void>;
|
|
6
|
-
listPromptActivations(): Promise<ActivationStatusRecord[]>;
|
|
7
|
-
listCodeToolHookActivations(): Promise<ActivationStatusRecord[]>;
|
|
6
|
+
listPromptActivations(includeDeactivated?: boolean): Promise<ActivationStatusRecord[]>;
|
|
7
|
+
listCodeToolHookActivations(includeDeactivated?: boolean): Promise<ActivationStatusRecord[]>;
|
|
8
8
|
listAllActivations(): Promise<ActivationStatusRecord[]>;
|
|
9
9
|
deactivateActivation(activationId: string, deactivatedAt: string): Promise<boolean>;
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-activation-state-store.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/memory-activation-state-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAE/I,qBAAa,0BAA2B,YAAW,wBAAwB;IACzE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6C;IAEnE,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAInF,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,qBAAqB,
|
|
1
|
+
{"version":3,"file":"memory-activation-state-store.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/memory-activation-state-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAE/I,qBAAa,0BAA2B,YAAW,wBAAwB;IACzE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6C;IAEnE,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAInF,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,qBAAqB,CAAC,kBAAkB,UAAQ,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAUpF,2BAA2B,CAAC,kBAAkB,UAAQ,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAU1F,kBAAkB,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAQvD,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAS1F;AAED,qBAAa,uBAAwB,YAAW,2BAA2B;IACzE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IAEnE,WAAW,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIzC,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAG9E"}
|
|
@@ -6,19 +6,19 @@ export class MemoryActivationStateStore {
|
|
|
6
6
|
async recordActivation(record) {
|
|
7
7
|
this.activations.set(record.idempotencyKey, record);
|
|
8
8
|
}
|
|
9
|
-
async listPromptActivations() {
|
|
9
|
+
async listPromptActivations(includeDeactivated = false) {
|
|
10
10
|
const result = [];
|
|
11
11
|
for (const record of this.activations.values()) {
|
|
12
|
-
if (record.channel === 'prompt' && record.deactivatedAt === null) {
|
|
12
|
+
if (record.channel === 'prompt' && (includeDeactivated || record.deactivatedAt === null)) {
|
|
13
13
|
result.push(record);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
return result.sort((a, b) => a.activatedAt.localeCompare(b.activatedAt));
|
|
17
17
|
}
|
|
18
|
-
async listCodeToolHookActivations() {
|
|
18
|
+
async listCodeToolHookActivations(includeDeactivated = false) {
|
|
19
19
|
const result = [];
|
|
20
20
|
for (const record of this.activations.values()) {
|
|
21
|
-
if (record.channel === 'code_tool_hook' && record.deactivatedAt === null) {
|
|
21
|
+
if (record.channel === 'code_tool_hook' && (includeDeactivated || record.deactivatedAt === null)) {
|
|
22
22
|
result.push(record);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-activation-state-store.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/memory-activation-state-store.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,0BAA0B;IACpB,WAAW,GAAG,IAAI,GAAG,EAAkC,CAAC;IAEzE,KAAK,CAAC,mBAAmB,CAAC,cAAsB;QAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAA8B;QACnD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,qBAAqB;
|
|
1
|
+
{"version":3,"file":"memory-activation-state-store.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/memory-activation-state-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ApprovalDecisionResult, ApprovalEnqueueInput, ApprovalFilter, ApprovalListFilter, ApprovalQueueStore, ApprovalRecord, ApprovalStats } from './activation-types.js';
|
|
1
|
+
import type { ApprovalDecisionResult, ApprovalEditInput, ApprovalEnqueueInput, ApprovalFilter, ApprovalListFilter, ApprovalQueueStore, ApprovalRecord, ApprovalStats } from './activation-types.js';
|
|
2
2
|
export declare class MemoryApprovalQueueStore implements ApprovalQueueStore {
|
|
3
3
|
private readonly records;
|
|
4
4
|
enqueue(input: ApprovalEnqueueInput, now: string): Promise<ApprovalRecord>;
|
|
@@ -14,5 +14,6 @@ export declare class MemoryApprovalQueueStore implements ApprovalQueueStore {
|
|
|
14
14
|
ok: false;
|
|
15
15
|
error: 'not_found' | 'not_approved';
|
|
16
16
|
}>;
|
|
17
|
+
edit(input: ApprovalEditInput): Promise<ApprovalDecisionResult>;
|
|
17
18
|
}
|
|
18
19
|
//# sourceMappingURL=memory-approval-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-approval-store.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/memory-approval-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAM/B,qBAAa,wBAAyB,YAAW,kBAAkB;IACjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAEvD,OAAO,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAsB1E,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAI3D,WAAW,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAU/D,OAAO,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAe/D,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAUvC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAiB9F,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAiB9F,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,WAAW,GAAG,cAAc,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-approval-store.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/memory-approval-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAM/B,qBAAa,wBAAyB,YAAW,kBAAkB;IACjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAEvD,OAAO,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAsB1E,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAI3D,WAAW,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAU/D,OAAO,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAe/D,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAUvC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAiB9F,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAiB9F,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,WAAW,GAAG,cAAc,CAAA;KAAE,CAAC;IAe9G,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAiBtE"}
|
|
@@ -114,5 +114,23 @@ export class MemoryApprovalQueueStore {
|
|
|
114
114
|
this.records.set(approvalId, reset);
|
|
115
115
|
return { ok: true };
|
|
116
116
|
}
|
|
117
|
+
async edit(input) {
|
|
118
|
+
const existing = this.records.get(input.approvalId);
|
|
119
|
+
if (!existing)
|
|
120
|
+
return { ok: false, error: 'not_found' };
|
|
121
|
+
if (existing.status !== 'pending') {
|
|
122
|
+
return { ok: false, error: 'already_decided', status: existing.status };
|
|
123
|
+
}
|
|
124
|
+
const updated = {
|
|
125
|
+
...existing,
|
|
126
|
+
artifactId: input.newArtifactId,
|
|
127
|
+
editedAt: input.now,
|
|
128
|
+
editedBy: input.editedBy,
|
|
129
|
+
editReason: input.editReason,
|
|
130
|
+
previousArtifactId: existing.artifactId,
|
|
131
|
+
};
|
|
132
|
+
this.records.set(input.approvalId, updated);
|
|
133
|
+
return { ok: true, record: updated };
|
|
134
|
+
}
|
|
117
135
|
}
|
|
118
136
|
//# sourceMappingURL=memory-approval-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-approval-store.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/memory-approval-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory-approval-store.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/memory-approval-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Production Gate Deps Factory — Story A (PRI-408)
|
|
3
|
+
*
|
|
4
|
+
* PURPOSE: Provide a production-grade RefinerRuleHostGateDeps factory that
|
|
5
|
+
* compiles rule implementation code using node:vm and evaluates it against
|
|
6
|
+
* golden traces via evaluateInRefinerSandbox. This is the canonical
|
|
7
|
+
* production compilation path — not a demo duplicate.
|
|
8
|
+
*
|
|
9
|
+
* ARCHITECTURE: This lives in principles-core because:
|
|
10
|
+
* 1. node:vm is a pure computation primitive (no fs/network/db I/O)
|
|
11
|
+
* 2. principles-core already uses node:crypto (randomUUID, createHash)
|
|
12
|
+
* 3. Both pd-cli (compileDemoRule) and openclaw-plugin
|
|
13
|
+
* (loadRuleImplementationModule) duplicate this logic — placing it
|
|
14
|
+
* here eliminates duplication and makes it available to all packages
|
|
15
|
+
* that depend on @principles/core (including pd-console).
|
|
16
|
+
*
|
|
17
|
+
* ERR checklist:
|
|
18
|
+
* - ERR-001: Rule code is string-validated before compilation
|
|
19
|
+
* - ERR-002: Compilation failures produce structured error results
|
|
20
|
+
* - ERR-005: Module exports validated with typeof checks, not `as`
|
|
21
|
+
*/
|
|
22
|
+
import type { RefinerRuleHostGateDeps } from '../internalization/refiner-rulehost-gate.js';
|
|
23
|
+
/**
|
|
24
|
+
* Create a production-grade RefinerRuleHostGateDeps that compiles rule code
|
|
25
|
+
* using node:vm and evaluates it against golden traces.
|
|
26
|
+
*
|
|
27
|
+
* This factory is the canonical production gateDeps provider. It replaces
|
|
28
|
+
* the demo-only createSandboxGateDeps() in pd-cli and makes the gateDeps
|
|
29
|
+
* available to all packages that depend on @principles/core.
|
|
30
|
+
*/
|
|
31
|
+
export declare function createProductionGateDeps(): RefinerRuleHostGateDeps;
|
|
32
|
+
//# sourceMappingURL=production-gate-deps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"production-gate-deps.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/production-gate-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,OAAO,KAAK,EACV,uBAAuB,EACxB,MAAM,6CAA6C,CAAC;AAmIrD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,IAAI,uBAAuB,CAgDlE"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Production Gate Deps Factory — Story A (PRI-408)
|
|
3
|
+
*
|
|
4
|
+
* PURPOSE: Provide a production-grade RefinerRuleHostGateDeps factory that
|
|
5
|
+
* compiles rule implementation code using node:vm and evaluates it against
|
|
6
|
+
* golden traces via evaluateInRefinerSandbox. This is the canonical
|
|
7
|
+
* production compilation path — not a demo duplicate.
|
|
8
|
+
*
|
|
9
|
+
* ARCHITECTURE: This lives in principles-core because:
|
|
10
|
+
* 1. node:vm is a pure computation primitive (no fs/network/db I/O)
|
|
11
|
+
* 2. principles-core already uses node:crypto (randomUUID, createHash)
|
|
12
|
+
* 3. Both pd-cli (compileDemoRule) and openclaw-plugin
|
|
13
|
+
* (loadRuleImplementationModule) duplicate this logic — placing it
|
|
14
|
+
* here eliminates duplication and makes it available to all packages
|
|
15
|
+
* that depend on @principles/core (including pd-console).
|
|
16
|
+
*
|
|
17
|
+
* ERR checklist:
|
|
18
|
+
* - ERR-001: Rule code is string-validated before compilation
|
|
19
|
+
* - ERR-002: Compilation failures produce structured error results
|
|
20
|
+
* - ERR-005: Module exports validated with typeof checks, not `as`
|
|
21
|
+
*/
|
|
22
|
+
import * as vm from 'node:vm';
|
|
23
|
+
import { evaluateInRefinerSandbox } from '../internalization/refiner-sandbox-wrapper.js';
|
|
24
|
+
import { checkForbiddenPatterns } from '../internalization/rule-code-validator.js';
|
|
25
|
+
import { validateCorrectionProposal } from '../internalization/correction-proposal.js';
|
|
26
|
+
import { safeStringifyPreview } from '../feedback/safe-stringify.js';
|
|
27
|
+
/**
|
|
28
|
+
* Valid decision enum values for RuleHostResult.
|
|
29
|
+
* Used to validate untrusted vm sandbox output (P2 #6 fix).
|
|
30
|
+
*/
|
|
31
|
+
const VALID_DECISIONS = new Set(['allow', 'block', 'requireApproval', 'auto_correct']);
|
|
32
|
+
/**
|
|
33
|
+
* Type guard: validate that a value from the untrusted vm sandbox has the
|
|
34
|
+
* full RuleHostResult shape. Treats all sandbox output as unknown.
|
|
35
|
+
*
|
|
36
|
+
* P2 #6 fix: previously the code only checked `decision` was a string, then
|
|
37
|
+
* used `as RuleHostResult` to accept the entire object. This bypassed
|
|
38
|
+
* validation of the decision enum value and other required fields.
|
|
39
|
+
*/
|
|
40
|
+
function isValidRuleHostResult(value) {
|
|
41
|
+
if (typeof value !== 'object' || value === null)
|
|
42
|
+
return false;
|
|
43
|
+
// decision: required, must be one of the 4 valid enum values
|
|
44
|
+
const decision = Reflect.get(value, 'decision');
|
|
45
|
+
if (typeof decision !== 'string' || !VALID_DECISIONS.has(decision)) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
// matched: required, must be a boolean
|
|
49
|
+
const matched = Reflect.get(value, 'matched');
|
|
50
|
+
if (typeof matched !== 'boolean')
|
|
51
|
+
return false;
|
|
52
|
+
// reason: required, must be a string
|
|
53
|
+
const reason = Reflect.get(value, 'reason');
|
|
54
|
+
if (typeof reason !== 'string')
|
|
55
|
+
return false;
|
|
56
|
+
// When decision is 'auto_correct', correctionProposal must be present
|
|
57
|
+
// AND pass full structural validation (P2 #6 fix: previously only checked
|
|
58
|
+
// presence + typeof object, allowing malformed proposals with missing
|
|
59
|
+
// required fields like proposedParams, correctedFields, applicationMode,
|
|
60
|
+
// confidence, ruleId, notifyAgent to flow into the activation path).
|
|
61
|
+
if (decision === 'auto_correct') {
|
|
62
|
+
const correctionProposal = Reflect.get(value, 'correctionProposal');
|
|
63
|
+
if (correctionProposal === undefined || correctionProposal === null) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
const proposalValidation = validateCorrectionProposal(correctionProposal);
|
|
67
|
+
if (!proposalValidation.valid) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Normalize rule source code: strip ES module export keywords so the code
|
|
75
|
+
* can be evaluated in a vm context (which doesn't support ESM exports).
|
|
76
|
+
*/
|
|
77
|
+
function normalizeSource(sourceCode) {
|
|
78
|
+
const withoutExports = sourceCode
|
|
79
|
+
.replace(/export\s+const\s+meta\s*=/, 'const meta =')
|
|
80
|
+
.replace(/export\s+function\s+evaluate\s*\(/, 'function evaluate(');
|
|
81
|
+
return `${withoutExports}
|
|
82
|
+
globalThis.__pdRuleModule = {
|
|
83
|
+
meta: typeof meta === 'undefined' ? undefined : meta,
|
|
84
|
+
evaluate: typeof evaluate === 'undefined' ? undefined : evaluate,
|
|
85
|
+
};`;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Type guard: validate that a value from the untrusted vm sandbox has the
|
|
89
|
+
* expected CompiledModuleExports shape. Treats all sandbox output as unknown.
|
|
90
|
+
*/
|
|
91
|
+
function isCompiledModuleExports(value) {
|
|
92
|
+
return typeof value === 'object' && value !== null;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Compile rule implementation code in a node:vm sandbox and return a typed
|
|
96
|
+
* evaluate function. Mirrors the compilation logic used by the production
|
|
97
|
+
* openclaw-plugin RuleHost (rule-implementation-runtime.ts).
|
|
98
|
+
*
|
|
99
|
+
* @throws if the code fails to compile or does not define a function evaluate
|
|
100
|
+
*/
|
|
101
|
+
function compileRuleCode(code, sourceLabel) {
|
|
102
|
+
if (typeof code !== 'string' || code.trim().length === 0) {
|
|
103
|
+
throw new Error(`[${sourceLabel}] rule code is empty or not a string`);
|
|
104
|
+
}
|
|
105
|
+
const context = vm.createContext(Object.create(null));
|
|
106
|
+
const script = new vm.Script(normalizeSource(code), { filename: sourceLabel });
|
|
107
|
+
script.runInContext(context, { timeout: 1000, displayErrors: true });
|
|
108
|
+
// Treat sandbox output as untrusted — use Reflect.get + type guard, not `as`.
|
|
109
|
+
const moduleExportsUnknown = Reflect.get(context, '__pdRuleModule');
|
|
110
|
+
Reflect.deleteProperty(context, '__pdRuleModule');
|
|
111
|
+
if (!isCompiledModuleExports(moduleExportsUnknown)) {
|
|
112
|
+
throw new Error(`[${sourceLabel}] compiled module export shape is invalid`);
|
|
113
|
+
}
|
|
114
|
+
const evaluateFn = moduleExportsUnknown.evaluate;
|
|
115
|
+
if (typeof evaluateFn !== 'function') {
|
|
116
|
+
throw new Error(`[${sourceLabel}] compiled module has no evaluate function`);
|
|
117
|
+
}
|
|
118
|
+
return (input, helpers) => {
|
|
119
|
+
const result = Reflect.apply(evaluateFn, undefined, [input, helpers]);
|
|
120
|
+
// P2 #6 fix: validate the full RuleHostResult shape, not just `decision` is a string.
|
|
121
|
+
// Previously used `as RuleHostResult` which bypassed enum + required field validation.
|
|
122
|
+
if (!isValidRuleHostResult(result)) {
|
|
123
|
+
throw new Error(`[${sourceLabel}]: evaluate returned invalid RuleHostResult (got ${typeof result === 'object' && result !== null ? safeStringifyPreview(result) : String(result)})`);
|
|
124
|
+
}
|
|
125
|
+
return result;
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Create a production-grade RefinerRuleHostGateDeps that compiles rule code
|
|
130
|
+
* using node:vm and evaluates it against golden traces.
|
|
131
|
+
*
|
|
132
|
+
* This factory is the canonical production gateDeps provider. It replaces
|
|
133
|
+
* the demo-only createSandboxGateDeps() in pd-cli and makes the gateDeps
|
|
134
|
+
* available to all packages that depend on @principles/core.
|
|
135
|
+
*/
|
|
136
|
+
export function createProductionGateDeps() {
|
|
137
|
+
return {
|
|
138
|
+
evaluateInSandbox: (code, goldenTrace, opts) => {
|
|
139
|
+
const startTime = Date.now();
|
|
140
|
+
// P2 #6 fix: check forbidden patterns BEFORE compilation/execution.
|
|
141
|
+
// Previously, compileRuleCode() executed the code via script.runInContext()
|
|
142
|
+
// and only then did evaluateInRefinerSandbox() check forbidden patterns —
|
|
143
|
+
// meaning malicious code (e.g. require('child_process')) would execute
|
|
144
|
+
// before being rejected. The check must happen on the source string
|
|
145
|
+
// before any vm execution.
|
|
146
|
+
const forbiddenViolations = checkForbiddenPatterns(code);
|
|
147
|
+
if (forbiddenViolations.length > 0) {
|
|
148
|
+
return {
|
|
149
|
+
success: false,
|
|
150
|
+
failedCases: [],
|
|
151
|
+
executionTimeMs: Date.now() - startTime,
|
|
152
|
+
forbiddenPatternViolations: forbiddenViolations,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
let evaluateCode;
|
|
156
|
+
try {
|
|
157
|
+
evaluateCode = compileRuleCode(code, 'production-gate-deps');
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
161
|
+
return {
|
|
162
|
+
success: false,
|
|
163
|
+
failedCases: [{
|
|
164
|
+
caseId: '__compile__',
|
|
165
|
+
errorType: 'syntax_error',
|
|
166
|
+
message,
|
|
167
|
+
}],
|
|
168
|
+
executionTimeMs: Date.now() - startTime,
|
|
169
|
+
forbiddenPatternViolations: [],
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
return evaluateInRefinerSandbox(code, goldenTrace, {
|
|
173
|
+
evaluateCode,
|
|
174
|
+
...opts,
|
|
175
|
+
});
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=production-gate-deps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"production-gate-deps.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/production-gate-deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@ export declare class SqliteActivationStateStore implements ActivationStateReadMo
|
|
|
5
5
|
constructor(connection: SqliteConnection);
|
|
6
6
|
getActivationStatus(idempotencyKey: string): Promise<ActivationStatusRecord | null>;
|
|
7
7
|
recordActivation(record: ActivationStatusRecord): Promise<void>;
|
|
8
|
-
listPromptActivations(): Promise<ActivationStatusRecord[]>;
|
|
9
|
-
listCodeToolHookActivations(): Promise<ActivationStatusRecord[]>;
|
|
8
|
+
listPromptActivations(includeDeactivated?: boolean): Promise<ActivationStatusRecord[]>;
|
|
9
|
+
listCodeToolHookActivations(includeDeactivated?: boolean): Promise<ActivationStatusRecord[]>;
|
|
10
10
|
listAllActivations(): Promise<ActivationStatusRecord[]>;
|
|
11
11
|
deactivateActivation(activationId: string, deactivatedAt: string): Promise<boolean>;
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-activation-state-store.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/sqlite-activation-state-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAoDtE,qBAAa,0BAA2B,YAAW,wBAAwB;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,gBAAgB;IAEnD,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAWnF,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB/D,qBAAqB,
|
|
1
|
+
{"version":3,"file":"sqlite-activation-state-store.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/sqlite-activation-state-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAoDtE,qBAAa,0BAA2B,YAAW,wBAAwB;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,gBAAgB;IAEnD,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAWnF,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB/D,qBAAqB,CAAC,kBAAkB,UAAQ,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAiBpF,2BAA2B,CAAC,kBAAkB,UAAQ,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAiB1F,kBAAkB,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAkBvD,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAS1F"}
|
|
@@ -67,14 +67,12 @@ export class SqliteActivationStateStore {
|
|
|
67
67
|
(?, ?, ?, ?, ?, ?, ?, ?)
|
|
68
68
|
`).run(record.activationId, record.idempotencyKey, record.artifactId, record.channel, record.action, record.targetRef, record.activatedAt, record.deactivatedAt);
|
|
69
69
|
}
|
|
70
|
-
async listPromptActivations() {
|
|
70
|
+
async listPromptActivations(includeDeactivated = false) {
|
|
71
71
|
const db = this.connection.getDb();
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
ORDER BY activated_at ASC
|
|
77
|
-
`).all();
|
|
72
|
+
const sql = includeDeactivated
|
|
73
|
+
? `SELECT activation_id, idempotency_key, artifact_id, channel, action, target_ref, activated_at, deactivated_at FROM activations WHERE channel = 'prompt' ORDER BY activated_at ASC`
|
|
74
|
+
: `SELECT activation_id, idempotency_key, artifact_id, channel, action, target_ref, activated_at, deactivated_at FROM activations WHERE channel = 'prompt' AND deactivated_at IS NULL ORDER BY activated_at ASC`;
|
|
75
|
+
const rows = db.prepare(sql).all();
|
|
78
76
|
if (!Array.isArray(rows))
|
|
79
77
|
return [];
|
|
80
78
|
const result = [];
|
|
@@ -85,14 +83,12 @@ export class SqliteActivationStateStore {
|
|
|
85
83
|
}
|
|
86
84
|
return result;
|
|
87
85
|
}
|
|
88
|
-
async listCodeToolHookActivations() {
|
|
86
|
+
async listCodeToolHookActivations(includeDeactivated = false) {
|
|
89
87
|
const db = this.connection.getDb();
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
ORDER BY activated_at ASC
|
|
95
|
-
`).all();
|
|
88
|
+
const sql = includeDeactivated
|
|
89
|
+
? `SELECT activation_id, idempotency_key, artifact_id, channel, action, target_ref, activated_at, deactivated_at FROM activations WHERE channel = 'code_tool_hook' ORDER BY activated_at ASC`
|
|
90
|
+
: `SELECT activation_id, idempotency_key, artifact_id, channel, action, target_ref, activated_at, deactivated_at FROM activations WHERE channel = 'code_tool_hook' AND deactivated_at IS NULL ORDER BY activated_at ASC`;
|
|
91
|
+
const rows = db.prepare(sql).all();
|
|
96
92
|
if (!Array.isArray(rows))
|
|
97
93
|
return [];
|
|
98
94
|
const result = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-activation-state-store.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/sqlite-activation-state-store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sqlite-activation-state-store.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/sqlite-activation-state-store.ts"],"names":[],"mappings":"AAGA,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,eAAe,CAAC,GAA4B,EAAE,GAAW;IAChE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,eAAe,EAAE,gBAAgB,CAAU,CAAC;IACrE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEzD,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAE7D,OAAO;QACL,YAAY;QACZ,cAAc;QACd,UAAU;QACV,OAAO;QACP,MAAM;QACN,SAAS,EAAE,SAAS,IAAI,EAAE;QAC1B,WAAW;QACX,aAAa,EAAE,aAAa,IAAI,IAAI;KACrC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,0BAA0B;IACR;IAA7B,YAA6B,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;IAAG,CAAC;IAE7D,KAAK,CAAC,mBAAmB,CAAC,cAAsB;QAC9C,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;;;;KAItB,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAEvB,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAA8B;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,EAAE,CAAC,OAAO,CAAC;;;;;KAKV,CAAC,CAAC,GAAG,CACJ,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,aAAa,CACrB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,kBAAkB,GAAG,KAAK;QACpD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,kBAAkB;YAC5B,CAAC,CAAC,mLAAmL;YACrL,CAAC,CAAC,8MAA8M,CAAC;QACnN,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAEnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpC,MAAM,MAAM,GAA6B,EAAE,CAAC;QAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,kBAAkB,GAAG,KAAK;QAC1D,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,kBAAkB;YAC5B,CAAC,CAAC,2LAA2L;YAC7L,CAAC,CAAC,sNAAsN,CAAC;QAC3N,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAEnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpC,MAAM,MAAM,GAA6B,EAAE,CAAC;QAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;KAIvB,CAAC,CAAC,GAAG,EAAE,CAAC;QAET,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpC,MAAM,MAAM,GAA6B,EAAE,CAAC;QAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,YAAoB,EAAE,aAAqB;QACpE,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;;;;KAIzB,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ApprovalDecisionResult, ApprovalEnqueueInput, ApprovalFilter, ApprovalListFilter, ApprovalQueueStore, ApprovalRecord, ApprovalStats } from './activation-types.js';
|
|
1
|
+
import type { ApprovalDecisionResult, ApprovalEditInput, ApprovalEnqueueInput, ApprovalFilter, ApprovalListFilter, ApprovalQueueStore, ApprovalRecord, ApprovalStats } from './activation-types.js';
|
|
2
2
|
import type { SqliteConnection } from '../store/sqlite-connection.js';
|
|
3
3
|
export declare class SqliteApprovalQueueStore implements ApprovalQueueStore {
|
|
4
4
|
private readonly connection;
|
|
@@ -16,5 +16,6 @@ export declare class SqliteApprovalQueueStore implements ApprovalQueueStore {
|
|
|
16
16
|
ok: false;
|
|
17
17
|
error: 'not_found' | 'not_approved';
|
|
18
18
|
}>;
|
|
19
|
+
edit(input: ApprovalEditInput): Promise<ApprovalDecisionResult>;
|
|
19
20
|
}
|
|
20
21
|
//# sourceMappingURL=sqlite-approval-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-approval-store.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/sqlite-approval-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,aAAa,EAId,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite-approval-store.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/activation/sqlite-approval-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,aAAa,EAId,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAsDtE,qBAAa,wBAAyB,YAAW,kBAAkB;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,gBAAgB;IAEnD,OAAO,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA2B1E,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAM3D,WAAW,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAU/D,OAAO,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAoB/D,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAUvC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAgB9F,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAgB9F,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,WAAW,GAAG,cAAc,CAAA;KAAE,CAAC;IAS9G,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAoBtE"}
|
|
@@ -16,6 +16,10 @@ function rowToRecord(row) {
|
|
|
16
16
|
confidenceExplanation: row.confidence_explanation ?? undefined,
|
|
17
17
|
effectDescription: row.effect_description ?? undefined,
|
|
18
18
|
rejectionEffect: row.rejection_effect ?? undefined,
|
|
19
|
+
editedAt: row.edited_at ?? undefined,
|
|
20
|
+
editedBy: row.edited_by ?? undefined,
|
|
21
|
+
editReason: row.edit_reason ?? undefined,
|
|
22
|
+
previousArtifactId: row.previous_artifact_id ?? undefined,
|
|
19
23
|
};
|
|
20
24
|
}
|
|
21
25
|
function makeApprovalId(artifactId, channel) {
|
|
@@ -144,5 +148,25 @@ export class SqliteApprovalQueueStore {
|
|
|
144
148
|
db.prepare("UPDATE approvals SET status = 'pending', decided_at = NULL, decided_by = NULL, decision_note = NULL WHERE approval_id = ? AND status = 'approved'").run(approvalId);
|
|
145
149
|
return { ok: true };
|
|
146
150
|
}
|
|
151
|
+
async edit(input) {
|
|
152
|
+
const db = this.connection.getDb();
|
|
153
|
+
const existing = db.prepare('SELECT status FROM approvals WHERE approval_id = ?').get(input.approvalId);
|
|
154
|
+
if (!existing)
|
|
155
|
+
return { ok: false, error: 'not_found' };
|
|
156
|
+
if (existing.status !== 'pending') {
|
|
157
|
+
return { ok: false, error: 'already_decided', status: existing.status };
|
|
158
|
+
}
|
|
159
|
+
// Atomic UPDATE: derive previous_artifact_id from the current DB value
|
|
160
|
+
// to prevent lineage drift during concurrent edits (ERR-004/ERR-008).
|
|
161
|
+
const updateResult = db.prepare("UPDATE approvals SET previous_artifact_id = artifact_id, artifact_id = ?, edited_at = ?, edited_by = ?, edit_reason = ? WHERE approval_id = ? AND status = 'pending'").run(input.newArtifactId, input.now, input.editedBy, input.editReason, input.approvalId);
|
|
162
|
+
if (updateResult.changes === 0) {
|
|
163
|
+
const fresh = db.prepare('SELECT status FROM approvals WHERE approval_id = ?').get(input.approvalId);
|
|
164
|
+
if (!fresh)
|
|
165
|
+
return { ok: false, error: 'not_found' };
|
|
166
|
+
return { ok: false, error: 'already_decided', status: fresh.status };
|
|
167
|
+
}
|
|
168
|
+
const row = db.prepare('SELECT * FROM approvals WHERE approval_id = ?').get(input.approvalId);
|
|
169
|
+
return { ok: true, record: rowToRecord(row) };
|
|
170
|
+
}
|
|
147
171
|
}
|
|
148
172
|
//# sourceMappingURL=sqlite-approval-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-approval-store.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/sqlite-approval-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sqlite-approval-store.js","sourceRoot":"","sources":["../../../src/runtime-v2/activation/sqlite-approval-store.ts"],"names":[],"mappings":"AAsCA,SAAS,WAAW,CAAC,GAAgB;IACnC,OAAO;QACL,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,OAAO,EAAE,GAAG,CAAC,OAAiC;QAC9C,SAAS,EAAE,GAAG,CAAC,UAAiC;QAChD,MAAM,EAAE,GAAG,CAAC,MAAwB;QACpC,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;QACvC,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;QACtC,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;QACtC,YAAY,EAAE,GAAG,CAAC,aAAa,IAAI,SAAS;QAC5C,eAAe,EAAE,GAAG,CAAC,gBAAgB,IAAI,SAAS;QAClD,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,SAAS;QACjC,aAAa,EAAE,GAAG,CAAC,cAAc,IAAI,SAAS;QAC9C,qBAAqB,EAAE,GAAG,CAAC,sBAAsB,IAAI,SAAS;QAC9D,iBAAiB,EAAE,GAAG,CAAC,kBAAkB,IAAI,SAAS;QACtD,eAAe,EAAE,GAAG,CAAC,gBAAgB,IAAI,SAAS;QAClD,QAAQ,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;QACpC,QAAQ,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;QACpC,UAAU,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;QACxC,kBAAkB,EAAE,GAAG,CAAC,oBAAoB,IAAI,SAAS;KAC1D,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB,EAAE,OAA+B;IACzE,OAAO,MAAM,GAAG,OAAO,GAAG,GAAG,GAAG,UAAU,CAAC;AAC7C,CAAC;AAED,MAAM,OAAO,wBAAwB;IACN;IAA7B,YAA6B,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;IAAG,CAAC;IAE7D,KAAK,CAAC,OAAO,CAAC,KAA2B,EAAE,GAAW;QACpD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACnE,EAAE,CAAC,OAAO,CACR,iCAAiC;YAC/B,oFAAoF;YACpF,yFAAyF;YACzF,8CAA8C,CACjD,CAAC,GAAG,CACH,UAAU,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,SAAS,EACf,SAAS,EACT,KAAK,CAAC,UAAU,IAAI,IAAI,EACxB,GAAG,EACH,KAAK,CAAC,OAAO,IAAI,IAAI,EACrB,KAAK,CAAC,aAAa,IAAI,IAAI,EAC3B,KAAK,CAAC,qBAAqB,IAAI,IAAI,EACnC,KAAK,CAAC,iBAAiB,IAAI,IAAI,EAC/B,KAAK,CAAC,eAAe,IAAI,IAAI,CAC9B,CAAC;QACF,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,CAAC,UAAU,CAA4B,CAAC;QACnH,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,UAAU,CAAC,CAAC;QAC1F,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAkB;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,CAAC,UAAU,CAA4B,CAAC;QACnH,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAuB;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,GAAG,GAAG,kDAAkD,CAAC;QAC7D,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YAAC,GAAG,IAAI,kBAAkB,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAChF,IAAI,MAAM,EAAE,SAAS,EAAE,CAAC;YAAC,GAAG,IAAI,qBAAqB,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QACvF,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAkB,CAAC;QAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAA2B;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QAClF,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QACrF,IAAI,GAAG,GAAG,yBAAyB,CAAC;QACpC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAAC,GAAG,IAAI,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAC3E,GAAG,IAAI,6BAA6B,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAC;QACvC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;YACrC,GAAG,IAAI,mBAAmB,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAkB,CAAC;QAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,+DAA+D,CAAC,CAAC,GAAG,EAAuC,CAAC;QACpI,MAAM,KAAK,GAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACpF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;gBAAC,KAAK,CAAC,GAAG,CAAC,MAA6B,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;YAAC,CAAC;QAClF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,SAAiB,EAAE,IAAa;QAChE,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,GAAG,CAAC,UAAU,CAAmC,CAAC;QACpI,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAwB,EAAE,CAAC;QAAC,CAAC;QACjI,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC,0IAA0I,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,IAAI,IAAI,EAAE,UAAU,CAAC,CAAC;QAC1N,IAAI,YAAY,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,GAAG,CAAC,UAAU,CAAmC,CAAC;YACjI,IAAI,CAAC,KAAK;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;YACrD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,MAAwB,EAAE,CAAC;QACzF,CAAC;QACD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,CAAC,UAAU,CAAgB,CAAC;QACvG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAAkB,EAAE,SAAiB,EAAE,MAAc;QAChE,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,GAAG,CAAC,UAAU,CAAmC,CAAC;QACpI,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAwB,EAAE,CAAC;QAAC,CAAC;QACjI,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC,6IAA6I,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACvN,IAAI,YAAY,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,GAAG,CAAC,UAAU,CAAmC,CAAC;YACjI,IAAI,CAAC,KAAK;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;YACrD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,MAAwB,EAAE,CAAC;QACzF,CAAC;QACD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,CAAC,UAAU,CAAgB,CAAC;QACvG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,UAAkB;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,GAAG,CAAC,UAAU,CAAmC,CAAC;QACpI,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QAChF,EAAE,CAAC,OAAO,CAAC,mJAAmJ,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChL,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAwB;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAmC,CAAC;QAC1I,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAwB,EAAE,CAAC;QAC5F,CAAC;QACD,uEAAuE;QACvE,sEAAsE;QACtE,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAC7B,sKAAsK,CACvK,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1F,IAAI,YAAY,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAmC,CAAC;YACvI,IAAI,CAAC,KAAK;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;YACrD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,MAAwB,EAAE,CAAC;QACzF,CAAC;QACD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAgB,CAAC;QAC7G,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;IAChD,CAAC;CACF"}
|
|
@@ -8,6 +8,13 @@ import type { StoreEventEmitter } from '../store/event-emitter.js';
|
|
|
8
8
|
* caller (adapter) validates it before use — never trust the shape here.
|
|
9
9
|
*/
|
|
10
10
|
export type ArtificerL2GenerateCodeFn = (prompt: string) => Promise<unknown>;
|
|
11
|
+
export declare function buildArtificerL2GenerateCode(config: {
|
|
12
|
+
readonly provider: string;
|
|
13
|
+
readonly model: string;
|
|
14
|
+
readonly apiKey: string;
|
|
15
|
+
readonly baseUrl?: string;
|
|
16
|
+
readonly timeoutMs?: number;
|
|
17
|
+
}): ArtificerL2GenerateCodeFn;
|
|
11
18
|
export interface ArtificerL2AdapterConfig {
|
|
12
19
|
/** Injected LLM call (mockable; production wires completeSimple). */
|
|
13
20
|
readonly generateCode: ArtificerL2GenerateCodeFn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artificer-l2-adapter.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/adapter/artificer-l2-adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"artificer-l2-adapter.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/adapter/artificer-l2-adapter.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,uBAAuB,EAA6B,MAAM,6CAA6C,CAAC;AAGtH,OAAO,KAAK,EAAE,kBAAkB,EAAwC,MAAM,wCAAwC,CAAC;AAIvH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAKnE;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAiD7E,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,yBAAyB,CAoC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACjD,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAC3C;AAuDD,qBAAa,kBAAmB,YAAW,gBAAgB;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuG;IAC9H,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0C;gBAEnD,MAAM,EAAE,wBAAwB;IAa5C,IAAI,IAAI,WAAW;IAKb,eAAe,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAc/C,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAKnD,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;IASrC,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAsHlD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAc1C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASvC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAM/D,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAK7D,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzE,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,YAAY;CAQrB"}
|