@dharma-ai-labs/agent-fabric-task-runner 0.1.4 → 0.1.7

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/README.md CHANGED
@@ -5,6 +5,22 @@ in relay-owned Git worktrees using registered command IDs and canonical
5
5
  arguments under explicit path, network, Git, budget, and Skill-pin authority.
6
6
  It is not a general remote shell.
7
7
 
8
+ ## Receipt-required tasks
9
+
10
+ A signed task opts into action-time authorization with
11
+ `requiredCapabilities: ["action_decision_receipts_v1"]` and a UUID
12
+ `target.endpointId`. HQ embeds exactly one task-level decision as
13
+ `actionDecision: { id, actionDigest, receipt, signature, keyVersion }` in the
14
+ signed task. `executeTask()` verifies and consumes that decision immediately
15
+ before provider or acceptance execution. Missing, expired, mismatched,
16
+ unknown-key, replayed, or non-release receipts fail closed before any effect.
17
+
18
+ The default `FileActionDecisionReplayGuard` atomically consumes each decision ID
19
+ once under the relay state directory. A gated task receipt includes one HQ
20
+ enforcement acknowledgement: `executed` after complete execution, `unknown`
21
+ after an indeterminate release attempt, or `contained` for a valid non-release.
22
+ Tasks that omit the capability retain the previous behavior and receipt shape.
23
+
8
24
  - [Task execution boundary](https://github.com/dharma-ai-labs/dharma-agent-fabric/blob/main/docs/06-task-execution-and-a2a.md)
9
25
  - [Bidirectional protocol](https://github.com/dharma-ai-labs/dharma-agent-fabric/blob/main/docs/05-bidirectional-protocol.md)
10
26
  - [Source](https://github.com/dharma-ai-labs/dharma-agent-fabric/tree/main/packages/task-runner)
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { KeyObject } from 'node:crypto';
2
- import { type ProviderId } from '@dharma-ai-labs/agent-fabric-contracts';
2
+ import { type ActionDecisionAcknowledgement, type ActionDecisionEnvelope, type ActionDecisionPublicKeyResolver, type ActionDecisionReceipt, type ProviderId, type TaskAction } from '@dharma-ai-labs/agent-fabric-contracts';
3
3
  import { type OrganizationPolicy } from '@dharma-ai-labs/agent-fabric-policy';
4
4
  import { type ProviderExecutionResult } from '@dharma-ai-labs/agent-fabric-provider-adapters';
5
5
  export interface TaskEnvelope {
@@ -10,8 +10,11 @@ export interface TaskEnvelope {
10
10
  taskType: 'external_request' | 'a2a_handoff' | 'evaluation_retest' | 'remediation_smoke';
11
11
  target: {
12
12
  deviceId: string;
13
+ endpointId?: string;
13
14
  provider: ProviderId;
14
15
  };
16
+ requiredCapabilities?: ReadonlyArray<'action_decision_receipts_v1'>;
17
+ actionDecision?: ActionDecisionEnvelope;
15
18
  source?: {
16
19
  taskId: string;
17
20
  endpointId: string;
@@ -50,6 +53,7 @@ export interface TaskEnvelope {
50
53
  }>;
51
54
  network: string;
52
55
  git: 'read_only' | 'task_branch' | 'merge_allowed' | 'deploy_allowed';
56
+ allowlistedDomains?: string[];
53
57
  };
54
58
  execution: {
55
59
  isolation: 'git_worktree';
@@ -89,6 +93,7 @@ export interface TaskReceipt {
89
93
  worktree: string;
90
94
  branch: string;
91
95
  commandResults: CommandResult[];
96
+ actionAcknowledgement?: ActionDecisionAcknowledgement;
92
97
  startedAt: string;
93
98
  completedAt: string;
94
99
  }
@@ -99,8 +104,22 @@ export type ProviderTaskExecutor = (input: {
99
104
  timeoutSeconds: number;
100
105
  allowedCommandArgv: string[][];
101
106
  allowWrites: boolean;
107
+ externalIdempotencyKey?: string;
108
+ actionDigest?: string;
102
109
  signal?: AbortSignal;
103
110
  }) => Promise<ProviderExecutionResult>;
111
+ export interface ActionDecisionReplayGuard {
112
+ consume(decisionId: string, actionDigest: string): Promise<boolean>;
113
+ }
114
+ export interface ActionDecisionReceiver {
115
+ resolvePublicKey: ActionDecisionPublicKeyResolver;
116
+ replayGuard?: ActionDecisionReplayGuard;
117
+ now?: () => Date;
118
+ }
119
+ export declare class ActionDecisionDeniedError extends Error {
120
+ readonly receipt: ActionDecisionReceipt;
121
+ constructor(message: string, receipt: ActionDecisionReceipt);
122
+ }
104
123
  export declare function assertTaskWithinLocalPolicy(task: TaskEnvelope, policy: OrganizationPolicy): void;
105
124
  export declare function verifyTaskEnvelope(task: TaskEnvelope, publicKey: KeyObject, now?: Date): void;
106
125
  export declare function providerInstructionsForTask(task: TaskEnvelope): string;
@@ -110,6 +129,65 @@ export declare class FileTaskReceiptStore {
110
129
  get(taskId: string): Promise<TaskReceipt | null>;
111
130
  put(receipt: TaskReceipt): Promise<void>;
112
131
  }
132
+ export type ActionExecutionJournalState = 'prepared' | 'replay_authorization_started' | 'replay_authorized' | 'executing' | 'effect_observed' | 'receipt_recorded';
133
+ export interface ActionExecutionJournalRecord {
134
+ schema: 'dharma.action-execution-journal/v1';
135
+ taskId: string;
136
+ decisionId: string;
137
+ endpointId: string;
138
+ actionDigest: string;
139
+ externalIdempotencyKey: string;
140
+ worktree: string;
141
+ branch: string;
142
+ state: ActionExecutionJournalState;
143
+ preparedAt: string;
144
+ updatedAt: string;
145
+ providerResultDigest?: string;
146
+ receipt?: TaskReceipt;
147
+ }
148
+ export interface ActionExecutionClaim {
149
+ schema: 'dharma.action-execution-claim/v1';
150
+ taskId: string;
151
+ decisionId: string;
152
+ actionDigest: string;
153
+ ownerId: string;
154
+ pid: number;
155
+ claimedAt: string;
156
+ expiresAt: string;
157
+ }
158
+ export declare class FileActionExecutionJournal {
159
+ private readonly directory;
160
+ private readonly pid;
161
+ private readonly now;
162
+ readonly ownerId: `${string}-${string}-${string}-${string}-${string}`;
163
+ constructor(directory: string, pid?: number, now?: () => Date);
164
+ private recordPath;
165
+ private claimPath;
166
+ get(taskId: string): Promise<ActionExecutionJournalRecord | null>;
167
+ getClaim(taskId: string): Promise<ActionExecutionClaim | null>;
168
+ prepare(input: Omit<ActionExecutionJournalRecord, 'schema' | 'state' | 'preparedAt' | 'updatedAt'>): Promise<{
169
+ record: ActionExecutionJournalRecord;
170
+ created: boolean;
171
+ }>;
172
+ transition(taskId: string, allowed: ActionExecutionJournalState[], state: ActionExecutionJournalState, patch?: Partial<ActionExecutionJournalRecord>): Promise<ActionExecutionJournalRecord>;
173
+ claim(record: ActionExecutionJournalRecord, maximumAgeMs: number): Promise<ActionExecutionClaim>;
174
+ isClaimOwnerAlive(claim: ActionExecutionClaim): boolean;
175
+ recordEffectObserved(taskId: string, providerResult: unknown): Promise<void>;
176
+ recordReceipt(receipt: TaskReceipt): Promise<void>;
177
+ selfTest(): Promise<void>;
178
+ }
179
+ export declare class FileActionDecisionReplayGuard implements ActionDecisionReplayGuard {
180
+ private readonly directory;
181
+ constructor(directory: string);
182
+ consume(decisionId: string, actionDigest: string): Promise<boolean>;
183
+ }
184
+ export declare function canonicalTaskActionForTask(task: TaskEnvelope, actionId: string): TaskAction;
185
+ export declare function authorizeEmbeddedActionDecision(input: {
186
+ task: TaskEnvelope;
187
+ receiver: ActionDecisionReceiver;
188
+ replayGuard: ActionDecisionReplayGuard;
189
+ }): Promise<ActionDecisionReceipt>;
190
+ export declare function verifyEmbeddedActionDecision(task: TaskEnvelope, receiver: ActionDecisionReceiver): ActionDecisionReceipt;
113
191
  export declare function executeTask(input: {
114
192
  task: TaskEnvelope;
115
193
  policy: OrganizationPolicy;
@@ -119,5 +197,7 @@ export declare function executeTask(input: {
119
197
  receiptStore: FileTaskReceiptStore;
120
198
  signal?: AbortSignal;
121
199
  providerExecutor?: ProviderTaskExecutor;
200
+ actionDecisions?: ActionDecisionReceiver;
201
+ actionExecutionJournal?: FileActionExecutionJournal;
122
202
  }): Promise<TaskReceipt>;
123
203
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}