@askdkc/kiokuko 0.1.28 → 0.1.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/akinator/agent-task.d.ts.map +1 -1
  2. package/dist/akinator/agent-task.js +105 -79
  3. package/dist/akinator/agent-task.js.map +1 -1
  4. package/dist/commands/agent.d.ts.map +1 -1
  5. package/dist/commands/agent.js +26 -2
  6. package/dist/commands/agent.js.map +1 -1
  7. package/dist/commands/doctor.d.ts +1 -0
  8. package/dist/commands/doctor.d.ts.map +1 -1
  9. package/dist/commands/doctor.js +6 -0
  10. package/dist/commands/doctor.js.map +1 -1
  11. package/dist/commands/setup.d.ts.map +1 -1
  12. package/dist/commands/setup.js +3 -0
  13. package/dist/commands/setup.js.map +1 -1
  14. package/dist/context/delivery-migration.d.ts +8 -0
  15. package/dist/context/delivery-migration.d.ts.map +1 -0
  16. package/dist/context/delivery-migration.js +100 -0
  17. package/dist/context/delivery-migration.js.map +1 -0
  18. package/dist/context/delivery.d.ts +1 -0
  19. package/dist/context/delivery.d.ts.map +1 -1
  20. package/dist/context/delivery.js +20 -4
  21. package/dist/context/delivery.js.map +1 -1
  22. package/dist/context/nudge-store.d.ts +57 -0
  23. package/dist/context/nudge-store.d.ts.map +1 -0
  24. package/dist/context/nudge-store.js +227 -0
  25. package/dist/context/nudge-store.js.map +1 -0
  26. package/dist/context/nudge-validation.d.ts +26 -0
  27. package/dist/context/nudge-validation.d.ts.map +1 -0
  28. package/dist/context/nudge-validation.js +122 -0
  29. package/dist/context/nudge-validation.js.map +1 -0
  30. package/dist/context/nudges.d.ts +38 -0
  31. package/dist/context/nudges.d.ts.map +1 -0
  32. package/dist/context/nudges.js +131 -0
  33. package/dist/context/nudges.js.map +1 -0
  34. package/dist/context/scoped-broker.d.ts.map +1 -1
  35. package/dist/context/scoped-broker.js +17 -3
  36. package/dist/context/scoped-broker.js.map +1 -1
  37. package/dist/db/migrate.d.ts.map +1 -1
  38. package/dist/db/migrate.js +5 -0
  39. package/dist/db/migrate.js.map +1 -1
  40. package/dist/gateway/checkpoint-mutation-service.d.ts +33 -0
  41. package/dist/gateway/checkpoint-mutation-service.d.ts.map +1 -0
  42. package/dist/gateway/checkpoint-mutation-service.js +513 -0
  43. package/dist/gateway/checkpoint-mutation-service.js.map +1 -0
  44. package/dist/gateway/checkpoint-service.d.ts +22 -25
  45. package/dist/gateway/checkpoint-service.d.ts.map +1 -1
  46. package/dist/gateway/checkpoint-service.js +26 -209
  47. package/dist/gateway/checkpoint-service.js.map +1 -1
  48. package/dist/gateway/nudge-delivery-service.d.ts +21 -0
  49. package/dist/gateway/nudge-delivery-service.d.ts.map +1 -0
  50. package/dist/gateway/nudge-delivery-service.js +67 -0
  51. package/dist/gateway/nudge-delivery-service.js.map +1 -0
  52. package/dist/ledger/archive.d.ts +2 -1
  53. package/dist/ledger/archive.d.ts.map +1 -1
  54. package/dist/ledger/archive.js +109 -8
  55. package/dist/ledger/archive.js.map +1 -1
  56. package/dist/ledger/checkpoint-contract.d.ts +3 -3
  57. package/dist/ledger/maintenance.d.ts +2 -1
  58. package/dist/ledger/maintenance.d.ts.map +1 -1
  59. package/dist/ledger/maintenance.js +67 -5
  60. package/dist/ledger/maintenance.js.map +1 -1
  61. package/dist/ledger/projection.d.ts +2 -0
  62. package/dist/ledger/projection.d.ts.map +1 -1
  63. package/dist/ledger/projection.js +9 -1
  64. package/dist/ledger/projection.js.map +1 -1
  65. package/dist/memory/checkpoint-contract.d.ts +6 -6
  66. package/dist/server/agent-application.d.ts.map +1 -1
  67. package/dist/server/agent-application.js +18 -4
  68. package/dist/server/agent-application.js.map +1 -1
  69. package/dist/server/agent-checkpoint-use-case.d.ts +41 -0
  70. package/dist/server/agent-checkpoint-use-case.d.ts.map +1 -0
  71. package/dist/server/agent-checkpoint-use-case.js +158 -0
  72. package/dist/server/agent-checkpoint-use-case.js.map +1 -0
  73. package/dist/server/routes/agent-runs.d.ts +11 -4
  74. package/dist/server/routes/agent-runs.d.ts.map +1 -1
  75. package/dist/server/routes/agent-runs.js.map +1 -1
  76. package/dist/server/routes/task5.d.ts.map +1 -1
  77. package/dist/server/routes/task5.js +29 -91
  78. package/dist/server/routes/task5.js.map +1 -1
  79. package/migrations/010_nudge_deliveries.sql +50 -0
  80. package/migrations/011_nudge_integrity.sql +52 -0
  81. package/migrations/012_context_delivery_v4.sql +3 -0
  82. package/package.json +1 -1
@@ -0,0 +1,41 @@
1
+ import type { AgentGatewayService } from '../gateway/agent-service.js';
2
+ import type { CheckpointMutationPort, CheckpointMutationResult } from '../gateway/checkpoint-mutation-service.js';
3
+ import type { NudgeDeliveryPort } from '../gateway/nudge-delivery-service.js';
4
+ import type { ContextBroker, ContextBrokerResult } from '../context/broker.js';
5
+ import type { DeliveredNudge } from '../context/nudges.js';
6
+ import type { Recommendation } from '../context/recommendations.js';
7
+ import { successEnvelope } from '../serialization/envelope.js';
8
+ import type { CapabilityGatedIntakeResponse } from './routes/agent-capability-gate.js';
9
+ export interface AgentCheckpointUseCaseDependencies {
10
+ readonly database: import('../db/adapter.js').SqliteDatabase;
11
+ readonly service: AgentGatewayService;
12
+ readonly checkpointMutation: CheckpointMutationPort;
13
+ readonly validateMutationAcknowledgement?: boolean;
14
+ readonly nudgeDelivery: NudgeDeliveryPort;
15
+ readonly broker: ContextBroker;
16
+ readonly enqueueWrite: <T>(operation: () => T | PromiseLike<T>) => Promise<T>;
17
+ }
18
+ export interface AgentCheckpointInput {
19
+ readonly runId: string;
20
+ readonly idempotencyKey: string;
21
+ readonly body: unknown;
22
+ readonly requestBindingHash: string;
23
+ }
24
+ export type AgentCheckpointResponse = Omit<CheckpointMutationResult, 'preliminaryRecommendations'> & {
25
+ readonly recommendations: readonly Recommendation[];
26
+ readonly capabilities: CapabilityGatedIntakeResponse['capabilities'];
27
+ readonly memoryPolicy: CapabilityGatedIntakeResponse['memoryPolicy'];
28
+ readonly warnings: CapabilityGatedIntakeResponse['warnings'];
29
+ readonly nextAction: CapabilityGatedIntakeResponse['nextAction'];
30
+ readonly context: ContextBrokerResult['context'];
31
+ readonly nudge: DeliveredNudge | null;
32
+ readonly untrusted: true;
33
+ readonly requestBindingHash: string;
34
+ };
35
+ export declare class AgentCheckpointUseCase {
36
+ private readonly dependencies;
37
+ constructor(dependencies: AgentCheckpointUseCaseDependencies);
38
+ execute(input: AgentCheckpointInput): Promise<AgentCheckpointResponse>;
39
+ }
40
+ export declare function checkpointSuccessResponse(value: AgentCheckpointResponse): ReturnType<typeof successEnvelope>;
41
+ //# sourceMappingURL=agent-checkpoint-use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-checkpoint-use-case.d.ts","sourceRoot":"","sources":["../../src/server/agent-checkpoint-use-case.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAClH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AASvF,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,QAAQ,EAAE,OAAO,kBAAkB,EAAE,cAAc,CAAC;IAC7D,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;IACpD,QAAQ,CAAC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IACnD,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,wBAAwB,EAAE,4BAA4B,CAAC,GAAG;IACnG,QAAQ,CAAC,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IACpD,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC,cAAc,CAAC,CAAC;IACrE,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC,cAAc,CAAC,CAAC;IACrE,QAAQ,CAAC,QAAQ,EAAE,6BAA6B,CAAC,UAAU,CAAC,CAAC;IAC7D,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC,YAAY,CAAC,CAAC;IACjE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC,CAAC;AA8EF,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,kCAAkC;IAEvE,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CA2E7E;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,uBAAuB,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAE5G"}
@@ -0,0 +1,158 @@
1
+ import { KiokukoError } from '../errors.js';
2
+ import { checkpointEligibility } from '../ledger/checkpoint-eligibility.js';
3
+ import { buildRecommendations } from '../context/recommendations.js';
4
+ import { canonicalJson } from '../serialization/validate.js';
5
+ import { successEnvelope } from '../serialization/envelope.js';
6
+ import { assertCapabilityCatalogBinding } from '../akinator/capability-binding.js';
7
+ import { applyAgentCapabilityGate, assertBrokerContextRun, brokerIntakeStatus, deriveBrokerMemoryUseSignal, requestCapabilityCatalog, } from './routes/agent-capability-gate.js';
8
+ function withoutCapabilityCatalog(value) {
9
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
10
+ return value;
11
+ const result = { ...value };
12
+ delete result.capabilities;
13
+ return result;
14
+ }
15
+ function checkpointSignalArray(value) {
16
+ if (value === undefined)
17
+ return [];
18
+ if (!Array.isArray(value) || value.some((item) => typeof item !== 'string')) {
19
+ throw new KiokukoError('INTEGRITY_ERROR', 'Checkpoint signals are invalid after validation');
20
+ }
21
+ return [...value];
22
+ }
23
+ function checkpointSignals(value) {
24
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
25
+ throw new KiokukoError('INTEGRITY_ERROR', 'Checkpoint signals are invalid after validation');
26
+ }
27
+ const request = value;
28
+ return {
29
+ changedPaths: checkpointSignalArray(request.changedPaths),
30
+ errorSignatures: checkpointSignalArray(request.errorSignatures),
31
+ };
32
+ }
33
+ function assertActiveCheckpointRun(run) {
34
+ const eligibility = checkpointEligibility(run.status);
35
+ if (eligibility.allowed)
36
+ return;
37
+ throw new KiokukoError('CONFLICT', 'Checkpoint is not allowed for a non-active run', {
38
+ checkpointEligibility: eligibility,
39
+ runStatus: run.status,
40
+ });
41
+ }
42
+ function brokerPersistence(dependencies) {
43
+ return {
44
+ enqueueWrite: (operation) => dependencies.enqueueWrite(operation),
45
+ };
46
+ }
47
+ function sameTaskProfile(left, right) {
48
+ return left.taskType === right.taskType
49
+ && left.target === right.target
50
+ && left.expected === right.expected
51
+ && left.constraints === right.constraints;
52
+ }
53
+ function checkpointIntegrity() {
54
+ throw new KiokukoError('INTEGRITY_ERROR', 'Checkpoint mutation acknowledgement is inconsistent');
55
+ }
56
+ function assertMutationAcknowledgement(mutation, runId) {
57
+ if (mutation.projection === null
58
+ || mutation.runId !== runId
59
+ || mutation.acceptedThrough !== mutation.projection.throughSequence
60
+ || mutation.profileHash !== mutation.projection.profileHash
61
+ || !sameTaskProfile(mutation.taskProfile, mutation.projection.taskProfile)) {
62
+ checkpointIntegrity();
63
+ }
64
+ try {
65
+ if (canonicalJson(mutation.preliminaryRecommendations)
66
+ !== canonicalJson(buildRecommendations({ projection: mutation.projection, broker: {} }))) {
67
+ checkpointIntegrity();
68
+ }
69
+ }
70
+ catch {
71
+ checkpointIntegrity();
72
+ }
73
+ }
74
+ export class AgentCheckpointUseCase {
75
+ dependencies;
76
+ constructor(dependencies) {
77
+ this.dependencies = dependencies;
78
+ }
79
+ async execute(input) {
80
+ const catalog = requestCapabilityCatalog(input.body);
81
+ const initialRun = this.dependencies.service.readRun({ runId: input.runId });
82
+ assertActiveCheckpointRun(initialRun);
83
+ assertCapabilityCatalogBinding(initialRun.metadata, catalog);
84
+ const serviceRequest = withoutCapabilityCatalog(input.body);
85
+ // The ledger mutation is committed before any broker work starts.
86
+ const mutation = await this.dependencies.enqueueWrite(() => this.dependencies.checkpointMutation.checkpoint({
87
+ runId: input.runId,
88
+ idempotencyKey: input.idempotencyKey,
89
+ request: serviceRequest,
90
+ }));
91
+ if (this.dependencies.validateMutationAcknowledgement !== false) {
92
+ assertMutationAcknowledgement(mutation, input.runId);
93
+ }
94
+ const signals = checkpointSignals(serviceRequest);
95
+ const gated = await this.dependencies.broker.queryGated({
96
+ workspace: 'run-bound',
97
+ runId: input.runId,
98
+ characterBudget: mutation.characterBudget,
99
+ changedPaths: signals.changedPaths,
100
+ errorSignatures: signals.errorSignatures,
101
+ }, (candidate) => {
102
+ assertBrokerContextRun(candidate, input.runId);
103
+ const memoryUse = deriveBrokerMemoryUseSignal(this.dependencies, candidate);
104
+ const value = applyAgentCapabilityGate({
105
+ task: initialRun.title ?? '',
106
+ intakeStatus: brokerIntakeStatus(candidate.status),
107
+ taskProfile: candidate.taskProfile,
108
+ recommendedTags: candidate.recommendedTags,
109
+ catalog,
110
+ broker: candidate,
111
+ memoryUseOverride: memoryUse,
112
+ });
113
+ return {
114
+ persist: value.context !== null || candidate.context === null,
115
+ value,
116
+ assertBeforePersist: () => {
117
+ if (deriveBrokerMemoryUseSignal(this.dependencies, candidate) !== memoryUse) {
118
+ throw new KiokukoError('CONFLICT', 'Memory capability decision changed before context persistence');
119
+ }
120
+ },
121
+ };
122
+ }, brokerPersistence(this.dependencies));
123
+ const finalRun = this.dependencies.service.readRun({ runId: input.runId });
124
+ assertActiveCheckpointRun(finalRun);
125
+ if (finalRun.lastSequence !== gated.broker.acceptedThrough) {
126
+ throw new KiokukoError('CONFLICT', 'Agent run changed while checkpoint context was being prepared');
127
+ }
128
+ const intakeStatus = brokerIntakeStatus(gated.broker.status);
129
+ const projection = gated.broker.projection;
130
+ if (intakeStatus === 'needs_answer' || projection === null) {
131
+ throw new KiokukoError('INTEGRITY_ERROR', 'Checkpoint context is not bound to finalized intake');
132
+ }
133
+ const nudge = await this.dependencies.enqueueWrite(() => this.dependencies.nudgeDelivery.deliver({
134
+ runId: input.runId,
135
+ idempotencyKey: input.idempotencyKey,
136
+ throughSequence: gated.broker.acceptedThrough,
137
+ projection,
138
+ recommendations: gated.value.recommendations,
139
+ }));
140
+ const { preliminaryRecommendations: _preliminaryRecommendations, ...mutationResponse } = mutation;
141
+ return {
142
+ ...mutationResponse,
143
+ runStatus: finalRun.status,
144
+ intakeStatus,
145
+ taskProfile: { ...gated.broker.taskProfile, source: 'akinator+ledger-revisions' },
146
+ profileHash: gated.broker.profileHash,
147
+ projection,
148
+ ...gated.value,
149
+ nudge,
150
+ requestBindingHash: input.requestBindingHash,
151
+ untrusted: true,
152
+ };
153
+ }
154
+ }
155
+ export function checkpointSuccessResponse(value) {
156
+ return successEnvelope('agent.checkpoint', value);
157
+ }
158
+ //# sourceMappingURL=agent-checkpoint-use-case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-checkpoint-use-case.js","sourceRoot":"","sources":["../../src/server/agent-checkpoint-use-case.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,24 @@
1
1
  import type { AgentGatewayService } from '../../gateway/agent-service.js';
2
- import type { CheckpointService, FeedbackService } from '../../gateway/checkpoint-service.js';
2
+ import type { FeedbackService, LegacyCheckpointServicePort } from '../../gateway/checkpoint-service.js';
3
3
  import type { ContextBroker } from '../../context/broker.js';
4
+ import type { AgentCheckpointUseCase } from '../agent-checkpoint-use-case.js';
4
5
  import type { V1RouteHandler, V1RouteRequest } from '../router.js';
5
6
  declare const RUNS_PATH = "/api/v1/agent/runs";
6
7
  type QueryField = 'workspace' | 'client' | 'status' | 'cursor' | 'limit' | 'after' | 'type';
7
- export interface AgentRouteContext {
8
+ type CheckpointComposition = {
9
+ readonly agentCheckpoint: AgentCheckpointUseCase;
10
+ readonly checkpointService?: never;
11
+ } | {
12
+ readonly agentCheckpoint?: never;
13
+ readonly checkpointService: LegacyCheckpointServicePort;
14
+ };
15
+ export type AgentRouteContext = {
8
16
  readonly database: import('../../db/adapter.js').SqliteDatabase;
9
17
  readonly service: AgentGatewayService;
10
- readonly checkpointService: CheckpointService;
11
18
  readonly feedbackService: FeedbackService;
12
19
  readonly broker: ContextBroker;
13
20
  readonly enqueueWrite: <T>(operation: () => T | PromiseLike<T>) => Promise<T>;
14
- }
21
+ } & CheckpointComposition;
15
22
  export declare function queryParameters(url: URL, allowed: readonly QueryField[]): Map<QueryField, string>;
16
23
  export declare function requireNoQuery(url: URL): void;
17
24
  export declare function decimalQuery(values: ReadonlyMap<QueryField, string>, field: 'limit' | 'after'): number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runs.d.ts","sourceRoot":"","sources":["../../../src/server/routes/agent-runs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInE,QAAA,MAAM,SAAS,uBAAuB,CAAC;AAKvC,KAAK,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5F,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,OAAO,qBAAqB,EAAE,cAAc,CAAC;IAChE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/E;AAMD,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAQjG;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAE7C;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAOlH;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAW/C;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAalF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAerE;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAoE/E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMvF;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"agent-runs.d.ts","sourceRoot":"","sources":["../../../src/server/routes/agent-runs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AACxG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInE,QAAA,MAAM,SAAS,uBAAuB,CAAC;AAKvC,KAAK,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5F,KAAK,qBAAqB,GACtB;IACE,QAAQ,CAAC,eAAe,EAAE,sBAAsB,CAAC;IACjD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC;CACpC,GACD;IACE,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;CACzD,CAAC;AAEN,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,qBAAqB,EAAE,cAAc,CAAC;IAChE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/E,GAAG,qBAAqB,CAAC;AAM1B,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAQjG;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAE7C;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAOlH;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAW/C;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAalF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAerE;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAoE/E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMvF;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runs.js","sourceRoot":"","sources":["../../../src/server/routes/agent-runs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-runs.js","sourceRoot":"","sources":["../../../src/server/routes/agent-runs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"task5.d.ts","sourceRoot":"","sources":["../../../src/server/routes/task5.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AA2CzB,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CA8F3E;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKnF"}
1
+ {"version":3,"file":"task5.d.ts","sourceRoot":"","sources":["../../../src/server/routes/task5.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AAkCzB,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CA0C3E;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKnF"}
@@ -1,48 +1,39 @@
1
- import { assertCapabilityCatalogBinding } from '../../akinator/capability-binding.js';
2
1
  import { KiokukoError } from '../../errors.js';
3
- import { checkpointEligibility } from '../../ledger/checkpoint-eligibility.js';
4
2
  import { successEnvelope } from '../../serialization/envelope.js';
3
+ import { AgentCheckpointUseCase } from '../agent-checkpoint-use-case.js';
5
4
  import { decodeRunId, requireIdempotencyKey, requireNoQuery, runIdSegment, } from './agent-runs.js';
6
- import { applyAgentCapabilityGate, assertBrokerContextRun, brokerIntakeStatus, deriveBrokerMemoryUseSignal, requestCapabilityCatalog } from './agent-capability-gate.js';
7
- import { brokerPersistence } from './task5-support.js';
8
5
  import { agentRequestBindingHash } from './request-binding.js';
9
6
  const CHECKPOINTS_SUFFIX = 'checkpoints';
10
7
  const FEEDBACK_SUFFIX = 'feedback';
11
- function withoutCapabilityCatalog(value) {
12
- if (typeof value !== 'object' || value === null || Array.isArray(value))
13
- return value;
14
- const result = { ...value };
15
- delete result.capabilities;
16
- return result;
17
- }
18
- function checkpointSignalArray(value) {
19
- if (value === undefined)
20
- return [];
21
- if (!Array.isArray(value) || value.some((item) => typeof item !== 'string')) {
22
- throw new KiokukoError('INTEGRITY_ERROR', 'Checkpoint signals are invalid after validation');
23
- }
24
- return [...value];
25
- }
26
- function checkpointSignals(value) {
27
- if (typeof value !== 'object' || value === null || Array.isArray(value)) {
28
- throw new KiokukoError('INTEGRITY_ERROR', 'Checkpoint signals are invalid after validation');
8
+ function legacyCheckpointUseCase(context) {
9
+ const legacy = context.checkpointService;
10
+ if (legacy === undefined) {
11
+ throw new KiokukoError('INTEGRITY_ERROR', 'Agent checkpoint use case is not configured');
29
12
  }
30
- const request = value;
31
- return {
32
- changedPaths: checkpointSignalArray(request.changedPaths),
33
- errorSignatures: checkpointSignalArray(request.errorSignatures),
13
+ const checkpointMutation = {
14
+ checkpoint: (input) => {
15
+ const value = legacy.checkpoint(input);
16
+ return {
17
+ ...value,
18
+ preliminaryRecommendations: [...(value.recommendations ?? [])],
19
+ };
20
+ },
34
21
  };
35
- }
36
- function assertActiveCheckpointRun(run) {
37
- const eligibility = checkpointEligibility(run.status);
38
- if (eligibility.allowed)
39
- return;
40
- throw new KiokukoError('CONFLICT', 'Checkpoint is not allowed for a non-active run', {
41
- checkpointEligibility: eligibility,
42
- runStatus: run.status,
22
+ const nudgeDelivery = {
23
+ deliver: (input) => legacy.deliverNudge(input),
24
+ };
25
+ return new AgentCheckpointUseCase({
26
+ database: context.database,
27
+ service: context.service,
28
+ checkpointMutation,
29
+ validateMutationAcknowledgement: false,
30
+ nudgeDelivery,
31
+ broker: context.broker,
32
+ enqueueWrite: context.enqueueWrite,
43
33
  });
44
34
  }
45
35
  export function createTask5Route(context) {
36
+ const checkpoint = context.agentCheckpoint ?? legacyCheckpointUseCase(context);
46
37
  return async (request) => {
47
38
  if (request.method === 'POST') {
48
39
  const rawCheckpointRunId = runIdSegment(request.url.pathname, CHECKPOINTS_SUFFIX);
@@ -56,66 +47,13 @@ export function createTask5Route(context) {
56
47
  idempotencyKey,
57
48
  requestBody: request.body,
58
49
  });
59
- const catalog = requestCapabilityCatalog(request.body);
60
- const run = context.service.readRun({ runId });
61
- assertActiveCheckpointRun(run);
62
- assertCapabilityCatalogBinding(run.metadata, catalog);
63
- const serviceRequest = withoutCapabilityCatalog(request.body);
64
- const data = await context.enqueueWrite(() => context.checkpointService.checkpoint({
50
+ const data = await checkpoint.execute({
65
51
  runId,
66
52
  idempotencyKey,
67
- request: serviceRequest,
68
- }));
69
- const signals = checkpointSignals(serviceRequest);
70
- const brokerInput = {
71
- workspace: 'run-bound',
72
- runId,
73
- characterBudget: data.characterBudget,
74
- changedPaths: signals.changedPaths,
75
- errorSignatures: signals.errorSignatures,
76
- };
77
- const gated = await context.broker.queryGated(brokerInput, (candidate) => {
78
- assertBrokerContextRun(candidate, runId);
79
- const memoryUse = deriveBrokerMemoryUseSignal(context, candidate);
80
- const value = applyAgentCapabilityGate({
81
- task: run.title ?? '',
82
- intakeStatus: brokerIntakeStatus(candidate.status),
83
- taskProfile: candidate.taskProfile,
84
- recommendedTags: candidate.recommendedTags,
85
- catalog,
86
- broker: candidate,
87
- memoryUseOverride: memoryUse,
88
- });
89
- return {
90
- persist: value.context !== null || candidate.context === null,
91
- value,
92
- assertBeforePersist: () => {
93
- if (deriveBrokerMemoryUseSignal(context, candidate) !== memoryUse) {
94
- throw new KiokukoError('CONFLICT', 'Memory capability decision changed before context persistence');
95
- }
96
- },
97
- };
98
- }, brokerPersistence(context));
99
- const finalRun = context.service.readRun({ runId });
100
- assertActiveCheckpointRun(finalRun);
101
- if (finalRun.lastSequence !== gated.broker.acceptedThrough) {
102
- throw new KiokukoError('CONFLICT', 'Agent run changed while checkpoint context was being prepared');
103
- }
104
- const intakeStatus = brokerIntakeStatus(gated.broker.status);
105
- if (intakeStatus === 'needs_answer' || gated.broker.projection === null) {
106
- throw new KiokukoError('INTEGRITY_ERROR', 'Checkpoint context is not bound to finalized intake');
107
- }
108
- const enriched = {
109
- ...data,
110
- runStatus: finalRun.status,
111
- intakeStatus,
112
- taskProfile: { ...gated.broker.taskProfile, source: 'akinator+ledger-revisions' },
113
- profileHash: gated.broker.profileHash,
114
- projection: gated.broker.projection,
115
- ...gated.value,
53
+ body: request.body,
116
54
  requestBindingHash,
117
- };
118
- return successEnvelope('agent.checkpoint', enriched);
55
+ });
56
+ return successEnvelope('agent.checkpoint', data);
119
57
  }
120
58
  const rawFeedbackRunId = runIdSegment(request.url.pathname, FEEDBACK_SUFFIX);
121
59
  if (rawFeedbackRunId !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"task5.js","sourceRoot":"","sources":["../../../src/server/routes/task5.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task5.js","sourceRoot":"","sources":["../../../src/server/routes/task5.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ CREATE TABLE nudge_deliveries (
2
+ id TEXT PRIMARY KEY,
3
+ run_id TEXT NOT NULL,
4
+ policy_version TEXT NOT NULL CHECK (length(policy_version) BETWEEN 1 AND 100),
5
+ code TEXT NOT NULL CHECK (length(code) BETWEEN 1 AND 100),
6
+ occurrence_id TEXT NOT NULL CHECK (length(occurrence_id) BETWEEN 1 AND 256),
7
+ checkpoint_id TEXT NOT NULL CHECK (length(checkpoint_id) BETWEEN 1 AND 256),
8
+ through_sequence INTEGER NOT NULL CHECK (through_sequence >= 0),
9
+ priority INTEGER NOT NULL CHECK (priority >= 1),
10
+ evidence_event_ids_json TEXT NOT NULL CHECK (json_valid(evidence_event_ids_json)),
11
+ reference_ids_json TEXT NOT NULL CHECK (json_valid(reference_ids_json)),
12
+ delivered_at TEXT NOT NULL,
13
+
14
+ FOREIGN KEY (run_id)
15
+ REFERENCES ledger_runs(run_id)
16
+ ON DELETE CASCADE,
17
+
18
+ UNIQUE (
19
+ run_id,
20
+ policy_version,
21
+ occurrence_id
22
+ ),
23
+
24
+ UNIQUE (
25
+ run_id,
26
+ policy_version,
27
+ checkpoint_id
28
+ )
29
+ );
30
+
31
+ CREATE INDEX nudge_deliveries_run_code_sequence
32
+ ON nudge_deliveries (
33
+ run_id,
34
+ policy_version,
35
+ code,
36
+ through_sequence
37
+ );
38
+
39
+ CREATE INDEX nudge_deliveries_run_sequence
40
+ ON nudge_deliveries (
41
+ run_id,
42
+ through_sequence
43
+ );
44
+
45
+ CREATE INDEX nudge_deliveries_run_checkpoint
46
+ ON nudge_deliveries (
47
+ run_id,
48
+ policy_version,
49
+ checkpoint_id
50
+ );
@@ -0,0 +1,52 @@
1
+ -- Keep the nudge table compatible with the only policy implemented by this
2
+ -- release. Application and archive validation provide the detailed checks;
3
+ -- these triggers protect direct SQL writers and updates as well.
4
+ CREATE TRIGGER nudge_deliveries_integrity_insert
5
+ BEFORE INSERT ON nudge_deliveries
6
+ BEGIN
7
+ SELECT RAISE(ABORT, 'invalid nudge delivery')
8
+ WHERE NEW.policy_version <> 'nudges.v1'
9
+ OR NEW.code NOT IN ('SIDE_EFFECT_OUTCOME_UNKNOWN', 'UNRESOLVED_FAILURE', 'VERIFY_AFTER_MUTATION')
10
+ OR NOT (
11
+ (NEW.code = 'SIDE_EFFECT_OUTCOME_UNKNOWN' AND NEW.priority = 2)
12
+ OR (NEW.code = 'UNRESOLVED_FAILURE' AND NEW.priority = 3)
13
+ OR (NEW.code = 'VERIFY_AFTER_MUTATION' AND NEW.priority = 4)
14
+ )
15
+ OR CASE
16
+ WHEN json_valid(NEW.evidence_event_ids_json)
17
+ THEN json_type(NEW.evidence_event_ids_json) = 'array'
18
+ AND json_array_length(NEW.evidence_event_ids_json) <= 16
19
+ ELSE 0
20
+ END = 0
21
+ OR CASE
22
+ WHEN json_valid(NEW.reference_ids_json)
23
+ THEN json_type(NEW.reference_ids_json) = 'array'
24
+ AND json_array_length(NEW.reference_ids_json) <= 16
25
+ ELSE 0
26
+ END = 0;
27
+ END;
28
+
29
+ CREATE TRIGGER nudge_deliveries_integrity_update
30
+ BEFORE UPDATE OF policy_version, code, priority, evidence_event_ids_json, reference_ids_json ON nudge_deliveries
31
+ BEGIN
32
+ SELECT RAISE(ABORT, 'invalid nudge delivery')
33
+ WHERE NEW.policy_version <> 'nudges.v1'
34
+ OR NEW.code NOT IN ('SIDE_EFFECT_OUTCOME_UNKNOWN', 'UNRESOLVED_FAILURE', 'VERIFY_AFTER_MUTATION')
35
+ OR NOT (
36
+ (NEW.code = 'SIDE_EFFECT_OUTCOME_UNKNOWN' AND NEW.priority = 2)
37
+ OR (NEW.code = 'UNRESOLVED_FAILURE' AND NEW.priority = 3)
38
+ OR (NEW.code = 'VERIFY_AFTER_MUTATION' AND NEW.priority = 4)
39
+ )
40
+ OR CASE
41
+ WHEN json_valid(NEW.evidence_event_ids_json)
42
+ THEN json_type(NEW.evidence_event_ids_json) = 'array'
43
+ AND json_array_length(NEW.evidence_event_ids_json) <= 16
44
+ ELSE 0
45
+ END = 0
46
+ OR CASE
47
+ WHEN json_valid(NEW.reference_ids_json)
48
+ THEN json_type(NEW.reference_ids_json) = 'array'
49
+ AND json_array_length(NEW.reference_ids_json) <= 16
50
+ ELSE 0
51
+ END = 0;
52
+ END;
@@ -0,0 +1,3 @@
1
+ -- Reserve this version for validating released scoped deliveries.
2
+ -- The application migration operation preserves their identities, policy,
3
+ -- accounting, and all historical references.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askdkc/kiokuko",
3
- "version": "0.1.28",
3
+ "version": "0.1.29",
4
4
  "description": "Model-agnostic external memory for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {