@itaila/archetype 0.3.30
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/LICENSE +21 -0
- package/README.md +475 -0
- package/dist/audit/audit-persona.d.ts +163 -0
- package/dist/audit/audit-persona.d.ts.map +1 -0
- package/dist/audit/audit-persona.js +415 -0
- package/dist/audit/audit-persona.js.map +1 -0
- package/dist/audit/brain-reflection.d.ts +33 -0
- package/dist/audit/brain-reflection.d.ts.map +1 -0
- package/dist/audit/brain-reflection.js +148 -0
- package/dist/audit/brain-reflection.js.map +1 -0
- package/dist/audit/conversation-audit.d.ts +12 -0
- package/dist/audit/conversation-audit.d.ts.map +1 -0
- package/dist/audit/conversation-audit.js +76 -0
- package/dist/audit/conversation-audit.js.map +1 -0
- package/dist/audit/prompt-audit.d.ts +10 -0
- package/dist/audit/prompt-audit.d.ts.map +1 -0
- package/dist/audit/prompt-audit.js +153 -0
- package/dist/audit/prompt-audit.js.map +1 -0
- package/dist/audit/prompt-dump.d.ts +137 -0
- package/dist/audit/prompt-dump.d.ts.map +1 -0
- package/dist/audit/prompt-dump.js +269 -0
- package/dist/audit/prompt-dump.js.map +1 -0
- package/dist/audit/trace-integrity.d.ts +33 -0
- package/dist/audit/trace-integrity.d.ts.map +1 -0
- package/dist/audit/trace-integrity.js +109 -0
- package/dist/audit/trace-integrity.js.map +1 -0
- package/dist/audit/types.d.ts +92 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/audit/types.js +2 -0
- package/dist/audit/types.js.map +1 -0
- package/dist/audit/version.d.ts +14 -0
- package/dist/audit/version.d.ts.map +1 -0
- package/dist/audit/version.js +65 -0
- package/dist/audit/version.js.map +1 -0
- package/dist/brain.d.ts +7 -0
- package/dist/brain.d.ts.map +1 -0
- package/dist/brain.js +83 -0
- package/dist/brain.js.map +1 -0
- package/dist/builder/actions.d.ts +60 -0
- package/dist/builder/actions.d.ts.map +1 -0
- package/dist/builder/actions.js +257 -0
- package/dist/builder/actions.js.map +1 -0
- package/dist/builder/browser.d.ts +140 -0
- package/dist/builder/browser.d.ts.map +1 -0
- package/dist/builder/browser.js +232 -0
- package/dist/builder/browser.js.map +1 -0
- package/dist/builder/executor.d.ts +228 -0
- package/dist/builder/executor.d.ts.map +1 -0
- package/dist/builder/executor.js +1548 -0
- package/dist/builder/executor.js.map +1 -0
- package/dist/builder/index.d.ts +24 -0
- package/dist/builder/index.d.ts.map +1 -0
- package/dist/builder/index.js +24 -0
- package/dist/builder/index.js.map +1 -0
- package/dist/builder/node-test-discovery.d.ts +13 -0
- package/dist/builder/node-test-discovery.d.ts.map +1 -0
- package/dist/builder/node-test-discovery.js +45 -0
- package/dist/builder/node-test-discovery.js.map +1 -0
- package/dist/builder/sandbox.d.ts +172 -0
- package/dist/builder/sandbox.d.ts.map +1 -0
- package/dist/builder/sandbox.js +294 -0
- package/dist/builder/sandbox.js.map +1 -0
- package/dist/builder/workspace-files.d.ts +63 -0
- package/dist/builder/workspace-files.d.ts.map +1 -0
- package/dist/builder/workspace-files.js +190 -0
- package/dist/builder/workspace-files.js.map +1 -0
- package/dist/core/actions.d.ts +55 -0
- package/dist/core/actions.d.ts.map +1 -0
- package/dist/core/actions.js +311 -0
- package/dist/core/actions.js.map +1 -0
- package/dist/core/attachment-notes.d.ts +7 -0
- package/dist/core/attachment-notes.d.ts.map +1 -0
- package/dist/core/attachment-notes.js +38 -0
- package/dist/core/attachment-notes.js.map +1 -0
- package/dist/core/context.d.ts +10 -0
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +108 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/crud-prompt.d.ts +16 -0
- package/dist/core/crud-prompt.d.ts.map +1 -0
- package/dist/core/crud-prompt.js +268 -0
- package/dist/core/crud-prompt.js.map +1 -0
- package/dist/core/crud-schema.d.ts +12 -0
- package/dist/core/crud-schema.d.ts.map +1 -0
- package/dist/core/crud-schema.js +42 -0
- package/dist/core/crud-schema.js.map +1 -0
- package/dist/core/effective-config.d.ts +13 -0
- package/dist/core/effective-config.d.ts.map +1 -0
- package/dist/core/effective-config.js +33 -0
- package/dist/core/effective-config.js.map +1 -0
- package/dist/core/entities.d.ts +82 -0
- package/dist/core/entities.d.ts.map +1 -0
- package/dist/core/entities.js +116 -0
- package/dist/core/entities.js.map +1 -0
- package/dist/core/entity-helpers.d.ts +47 -0
- package/dist/core/entity-helpers.d.ts.map +1 -0
- package/dist/core/entity-helpers.js +122 -0
- package/dist/core/entity-helpers.js.map +1 -0
- package/dist/core/entity-registry.d.ts +47 -0
- package/dist/core/entity-registry.d.ts.map +1 -0
- package/dist/core/entity-registry.js +54 -0
- package/dist/core/entity-registry.js.map +1 -0
- package/dist/core/eq.d.ts +13 -0
- package/dist/core/eq.d.ts.map +1 -0
- package/dist/core/eq.js +41 -0
- package/dist/core/eq.js.map +1 -0
- package/dist/core/focus-context.d.ts +19 -0
- package/dist/core/focus-context.d.ts.map +1 -0
- package/dist/core/focus-context.js +46 -0
- package/dist/core/focus-context.js.map +1 -0
- package/dist/core/focus-mode-actions.d.ts +23 -0
- package/dist/core/focus-mode-actions.d.ts.map +1 -0
- package/dist/core/focus-mode-actions.js +74 -0
- package/dist/core/focus-mode-actions.js.map +1 -0
- package/dist/core/greeting.d.ts +10 -0
- package/dist/core/greeting.d.ts.map +1 -0
- package/dist/core/greeting.js +41 -0
- package/dist/core/greeting.js.map +1 -0
- package/dist/core/identity.d.ts +13 -0
- package/dist/core/identity.d.ts.map +1 -0
- package/dist/core/identity.js +54 -0
- package/dist/core/identity.js.map +1 -0
- package/dist/core/knowledge.d.ts +10 -0
- package/dist/core/knowledge.d.ts.map +1 -0
- package/dist/core/knowledge.js +40 -0
- package/dist/core/knowledge.js.map +1 -0
- package/dist/core/memory-actions.d.ts +38 -0
- package/dist/core/memory-actions.d.ts.map +1 -0
- package/dist/core/memory-actions.js +181 -0
- package/dist/core/memory-actions.js.map +1 -0
- package/dist/core/memory.d.ts +35 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +168 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/peer-actions.d.ts +15 -0
- package/dist/core/peer-actions.d.ts.map +1 -0
- package/dist/core/peer-actions.js +33 -0
- package/dist/core/peer-actions.js.map +1 -0
- package/dist/core/prompt-builder.d.ts +46 -0
- package/dist/core/prompt-builder.d.ts.map +1 -0
- package/dist/core/prompt-builder.js +543 -0
- package/dist/core/prompt-builder.js.map +1 -0
- package/dist/core/prompt-mode.d.ts +3 -0
- package/dist/core/prompt-mode.d.ts.map +1 -0
- package/dist/core/prompt-mode.js +6 -0
- package/dist/core/prompt-mode.js.map +1 -0
- package/dist/core/prompted-turn.d.ts +6 -0
- package/dist/core/prompted-turn.d.ts.map +1 -0
- package/dist/core/prompted-turn.js +48 -0
- package/dist/core/prompted-turn.js.map +1 -0
- package/dist/core/request-builder.d.ts +14 -0
- package/dist/core/request-builder.d.ts.map +1 -0
- package/dist/core/request-builder.js +64 -0
- package/dist/core/request-builder.js.map +1 -0
- package/dist/core/session-routing.d.ts +23 -0
- package/dist/core/session-routing.d.ts.map +1 -0
- package/dist/core/session-routing.js +59 -0
- package/dist/core/session-routing.js.map +1 -0
- package/dist/core/voice.d.ts +6 -0
- package/dist/core/voice.d.ts.map +1 -0
- package/dist/core/voice.js +30 -0
- package/dist/core/voice.js.map +1 -0
- package/dist/engine/chat.d.ts +45 -0
- package/dist/engine/chat.d.ts.map +1 -0
- package/dist/engine/chat.js +308 -0
- package/dist/engine/chat.js.map +1 -0
- package/dist/engine/continuity.d.ts +107 -0
- package/dist/engine/continuity.d.ts.map +1 -0
- package/dist/engine/continuity.js +320 -0
- package/dist/engine/continuity.js.map +1 -0
- package/dist/engine/crud.d.ts +62 -0
- package/dist/engine/crud.d.ts.map +1 -0
- package/dist/engine/crud.js +260 -0
- package/dist/engine/crud.js.map +1 -0
- package/dist/engine/side-effects.d.ts +93 -0
- package/dist/engine/side-effects.d.ts.map +1 -0
- package/dist/engine/side-effects.js +271 -0
- package/dist/engine/side-effects.js.map +1 -0
- package/dist/engine/staging.d.ts +29 -0
- package/dist/engine/staging.d.ts.map +1 -0
- package/dist/engine/staging.js +159 -0
- package/dist/engine/staging.js.map +1 -0
- package/dist/engine/working-set.d.ts +18 -0
- package/dist/engine/working-set.d.ts.map +1 -0
- package/dist/engine/working-set.js +246 -0
- package/dist/engine/working-set.js.map +1 -0
- package/dist/evals/action-contracts.d.ts +40 -0
- package/dist/evals/action-contracts.d.ts.map +1 -0
- package/dist/evals/action-contracts.js +208 -0
- package/dist/evals/action-contracts.js.map +1 -0
- package/dist/evals/brain-bloat.d.ts +39 -0
- package/dist/evals/brain-bloat.d.ts.map +1 -0
- package/dist/evals/brain-bloat.js +167 -0
- package/dist/evals/brain-bloat.js.map +1 -0
- package/dist/evals/brain-prescriptions.d.ts +30 -0
- package/dist/evals/brain-prescriptions.d.ts.map +1 -0
- package/dist/evals/brain-prescriptions.js +148 -0
- package/dist/evals/brain-prescriptions.js.map +1 -0
- package/dist/evals/cross-layer-duplicates.d.ts +49 -0
- package/dist/evals/cross-layer-duplicates.d.ts.map +1 -0
- package/dist/evals/cross-layer-duplicates.js +289 -0
- package/dist/evals/cross-layer-duplicates.js.map +1 -0
- package/dist/evals/entity-visibility.d.ts +28 -0
- package/dist/evals/entity-visibility.d.ts.map +1 -0
- package/dist/evals/entity-visibility.js +216 -0
- package/dist/evals/entity-visibility.js.map +1 -0
- package/dist/evals/index.d.ts +19 -0
- package/dist/evals/index.d.ts.map +1 -0
- package/dist/evals/index.js +11 -0
- package/dist/evals/index.js.map +1 -0
- package/dist/evals/judge.d.ts +22 -0
- package/dist/evals/judge.d.ts.map +1 -0
- package/dist/evals/judge.js +337 -0
- package/dist/evals/judge.js.map +1 -0
- package/dist/evals/operational-contract.d.ts +40 -0
- package/dist/evals/operational-contract.d.ts.map +1 -0
- package/dist/evals/operational-contract.js +115 -0
- package/dist/evals/operational-contract.js.map +1 -0
- package/dist/evals/prompt-content.d.ts +14 -0
- package/dist/evals/prompt-content.d.ts.map +1 -0
- package/dist/evals/prompt-content.js +104 -0
- package/dist/evals/prompt-content.js.map +1 -0
- package/dist/evals/runtime.d.ts +4 -0
- package/dist/evals/runtime.d.ts.map +1 -0
- package/dist/evals/runtime.js +197 -0
- package/dist/evals/runtime.js.map +1 -0
- package/dist/evals/sample-projects.d.ts +143 -0
- package/dist/evals/sample-projects.d.ts.map +1 -0
- package/dist/evals/sample-projects.js +644 -0
- package/dist/evals/sample-projects.js.map +1 -0
- package/dist/evals/types.d.ts +88 -0
- package/dist/evals/types.d.ts.map +1 -0
- package/dist/evals/types.js +2 -0
- package/dist/evals/types.js.map +1 -0
- package/dist/foundation/index.d.ts +158 -0
- package/dist/foundation/index.d.ts.map +1 -0
- package/dist/foundation/index.js +256 -0
- package/dist/foundation/index.js.map +1 -0
- package/dist/index.d.ts +223 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +998 -0
- package/dist/index.js.map +1 -0
- package/dist/managed/autonomous-loop.d.ts +199 -0
- package/dist/managed/autonomous-loop.d.ts.map +1 -0
- package/dist/managed/autonomous-loop.js +451 -0
- package/dist/managed/autonomous-loop.js.map +1 -0
- package/dist/managed/conversation.d.ts +20 -0
- package/dist/managed/conversation.d.ts.map +1 -0
- package/dist/managed/conversation.js +40 -0
- package/dist/managed/conversation.js.map +1 -0
- package/dist/managed/knowledge.d.ts +7 -0
- package/dist/managed/knowledge.d.ts.map +1 -0
- package/dist/managed/knowledge.js +174 -0
- package/dist/managed/knowledge.js.map +1 -0
- package/dist/managed/memory-manager.d.ts +7 -0
- package/dist/managed/memory-manager.d.ts.map +1 -0
- package/dist/managed/memory-manager.js +18 -0
- package/dist/managed/memory-manager.js.map +1 -0
- package/dist/managed/memory-review.d.ts +45 -0
- package/dist/managed/memory-review.d.ts.map +1 -0
- package/dist/managed/memory-review.js +130 -0
- package/dist/managed/memory-review.js.map +1 -0
- package/dist/managed/storage.d.ts +2 -0
- package/dist/managed/storage.d.ts.map +1 -0
- package/dist/managed/storage.js +2 -0
- package/dist/managed/storage.js.map +1 -0
- package/dist/managed/work-history.d.ts +23 -0
- package/dist/managed/work-history.d.ts.map +1 -0
- package/dist/managed/work-history.js +31 -0
- package/dist/managed/work-history.js.map +1 -0
- package/dist/observability/index.d.ts +15 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +15 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/render-run-markdown.d.ts +90 -0
- package/dist/observability/render-run-markdown.d.ts.map +1 -0
- package/dist/observability/render-run-markdown.js +231 -0
- package/dist/observability/render-run-markdown.js.map +1 -0
- package/dist/observability/turn-reporter.d.ts +20 -0
- package/dist/observability/turn-reporter.d.ts.map +1 -0
- package/dist/observability/turn-reporter.js +106 -0
- package/dist/observability/turn-reporter.js.map +1 -0
- package/dist/persona.d.ts +49 -0
- package/dist/persona.d.ts.map +1 -0
- package/dist/persona.js +287 -0
- package/dist/persona.js.map +1 -0
- package/dist/playbook/defaults.d.ts +25 -0
- package/dist/playbook/defaults.d.ts.map +1 -0
- package/dist/playbook/defaults.js +108 -0
- package/dist/playbook/defaults.js.map +1 -0
- package/dist/playbook/invariants.d.ts +244 -0
- package/dist/playbook/invariants.d.ts.map +1 -0
- package/dist/playbook/invariants.js +259 -0
- package/dist/playbook/invariants.js.map +1 -0
- package/dist/playbook/templates.d.ts +7 -0
- package/dist/playbook/templates.d.ts.map +1 -0
- package/dist/playbook/templates.js +437 -0
- package/dist/playbook/templates.js.map +1 -0
- package/dist/providers/gemini.d.ts +73 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +536 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/types.d.ts +2 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +2 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/providers/zod-to-gemini.d.ts +8 -0
- package/dist/providers/zod-to-gemini.d.ts.map +1 -0
- package/dist/providers/zod-to-gemini.js +148 -0
- package/dist/providers/zod-to-gemini.js.map +1 -0
- package/dist/samples/pm-spec-agent.d.ts +22 -0
- package/dist/samples/pm-spec-agent.d.ts.map +1 -0
- package/dist/samples/pm-spec-agent.js +53 -0
- package/dist/samples/pm-spec-agent.js.map +1 -0
- package/dist/types.d.ts +920 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/engine/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type { ChatParticipant, LLMProvider, ParsedAction, TurnLedgerActionOutcome, TurnLedgerEntry } from '../types.js';
|
|
2
|
+
export type ContinuityActionOutcome = TurnLedgerActionOutcome;
|
|
3
|
+
export interface BuildAssistantContinuityMessageInput {
|
|
4
|
+
/** The assistant's narrative message. */
|
|
5
|
+
message: string;
|
|
6
|
+
/** AI-written outcome notes from the model response. */
|
|
7
|
+
modelOutcomeNotes?: readonly string[];
|
|
8
|
+
/** Executor/action outcomes. These become durable natural-language notes. */
|
|
9
|
+
actionOutcomes?: readonly ContinuityActionOutcome[];
|
|
10
|
+
/** Debug/UI action annotations. Stripped before future model turns. */
|
|
11
|
+
actionAnnotations?: readonly string[];
|
|
12
|
+
/** Provider-specific history transport. */
|
|
13
|
+
historyTransport?: LLMProvider['historyTransport'];
|
|
14
|
+
/** Actions to preserve as compact function-call references for native FC history. */
|
|
15
|
+
actionsForHistory?: readonly Pick<ParsedAction, 'name' | 'params'>[];
|
|
16
|
+
/** Extra model-visible history sections, e.g. peer consultation summaries. */
|
|
17
|
+
extraHistorySections?: readonly string[];
|
|
18
|
+
/** Turn the message belongs to, used to age action outcomes. */
|
|
19
|
+
entryTurn?: number;
|
|
20
|
+
/** Current turn receiving this continuity message. */
|
|
21
|
+
currentTurn?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Build the assistant message stored in history.
|
|
25
|
+
*
|
|
26
|
+
* This is the continuity invariant:
|
|
27
|
+
* - future turns see narrative + outcome notes, not raw action payloads
|
|
28
|
+
* - attempted actions are represented by compact natural-language action
|
|
29
|
+
* narration/outcome notes, not by dumping raw params back into the feed
|
|
30
|
+
* - raw/debug action annotations are optional and stripped from LLM history
|
|
31
|
+
* - function-calling providers receive compact action references with large
|
|
32
|
+
* params omitted
|
|
33
|
+
*/
|
|
34
|
+
export declare function buildAssistantContinuityMessage(input: BuildAssistantContinuityMessageInput): string;
|
|
35
|
+
export interface RenderTurnLedgerOptions {
|
|
36
|
+
/** Actor id/name for the persona receiving the rendered history. */
|
|
37
|
+
perspectiveActorId?: string;
|
|
38
|
+
/** Participant labels used to make peer turns legible despite binary provider roles. */
|
|
39
|
+
participants?: readonly ChatParticipant[];
|
|
40
|
+
/** Whether model-facing content should include a speaker label. Defaults to true. */
|
|
41
|
+
speakerLabels?: boolean;
|
|
42
|
+
/** Provider-specific history transport. */
|
|
43
|
+
historyTransport?: LLMProvider['historyTransport'];
|
|
44
|
+
/**
|
|
45
|
+
* When the receiving persona already has private work history for this
|
|
46
|
+
* actor, omit the same actor's action outcomes from visible chat history.
|
|
47
|
+
* Peer outcomes are still rendered because they are shared-world facts.
|
|
48
|
+
*/
|
|
49
|
+
omitActionOutcomesForActorId?: string;
|
|
50
|
+
/** Current turn number for time-decaying action outcome continuity. */
|
|
51
|
+
currentTurn?: number;
|
|
52
|
+
}
|
|
53
|
+
export interface PrepareTurnLedgerChatTurnOptions extends RenderTurnLedgerOptions {
|
|
54
|
+
/** Message to use when there is no fresh peer turn to receive. */
|
|
55
|
+
fallbackMessage: string;
|
|
56
|
+
}
|
|
57
|
+
export interface PreparedTurnLedgerChatTurn {
|
|
58
|
+
/** Current model-visible message for this actor. */
|
|
59
|
+
message: string;
|
|
60
|
+
/** Remaining ledger entries to render as chat history. */
|
|
61
|
+
turnLedger: TurnLedgerEntry[];
|
|
62
|
+
/** Why this message is being presented as the current turn. */
|
|
63
|
+
source: 'fresh-peer-turn' | 'own-action-outcome' | 'fallback';
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Prepare a multi-persona chat turn from a turn ledger.
|
|
67
|
+
*
|
|
68
|
+
* When the latest ledger entry came from another participant, that entry is
|
|
69
|
+
* the current message for this actor, not another history item plus a fake
|
|
70
|
+
* "Continue." prompt. Its action outcomes stay attached so the receiving
|
|
71
|
+
* persona sees the teammate's visible message and the factual world changes
|
|
72
|
+
* caused by that turn in one place.
|
|
73
|
+
*
|
|
74
|
+
* The same rule applies when the latest entry is this actor's own turn with
|
|
75
|
+
* action outcomes. The next model call is responding to those outcomes, not
|
|
76
|
+
* to a fresh user request to "continue", so the result stays in the current
|
|
77
|
+
* event instead of being buried in assistant history.
|
|
78
|
+
*/
|
|
79
|
+
export declare function prepareTurnLedgerChatTurn(entries: readonly TurnLedgerEntry[] | undefined, options: PrepareTurnLedgerChatTurnOptions): PreparedTurnLedgerChatTurn;
|
|
80
|
+
/**
|
|
81
|
+
* Render a turn ledger into model-facing chat history.
|
|
82
|
+
*
|
|
83
|
+
* This is the locked continuity path for multi-agent/custom-loop apps:
|
|
84
|
+
* visible chat and action outcomes travel together, raw action payloads do
|
|
85
|
+
* not, and actor ids are mapped into user/assistant roles per recipient.
|
|
86
|
+
*/
|
|
87
|
+
export declare function renderTurnLedgerForModel(entries: readonly TurnLedgerEntry[] | undefined, options?: RenderTurnLedgerOptions): Array<{
|
|
88
|
+
role: 'user' | 'assistant';
|
|
89
|
+
content: string;
|
|
90
|
+
}>;
|
|
91
|
+
export declare function renderTurnLedgerEntryForModel(entry: TurnLedgerEntry, options?: RenderTurnLedgerOptions): {
|
|
92
|
+
role: 'user' | 'assistant';
|
|
93
|
+
content: string;
|
|
94
|
+
} | null;
|
|
95
|
+
export declare function renderTurnLedgerForDisplay(entries: readonly TurnLedgerEntry[] | undefined, options?: Pick<RenderTurnLedgerOptions, 'perspectiveActorId'>): Array<{
|
|
96
|
+
role: 'user' | 'assistant';
|
|
97
|
+
content: string;
|
|
98
|
+
}>;
|
|
99
|
+
export declare function collectOutcomeNotes(input: Pick<BuildAssistantContinuityMessageInput, 'modelOutcomeNotes' | 'actionOutcomes' | 'entryTurn' | 'currentTurn'>): string[];
|
|
100
|
+
export declare function buildOutcomeNoteFromActionOutcome(outcome: ContinuityActionOutcome, options?: Pick<BuildAssistantContinuityMessageInput, 'entryTurn' | 'currentTurn'>): string | null;
|
|
101
|
+
export declare function compactActionForHistory(action: Pick<ParsedAction, 'name' | 'params'>): {
|
|
102
|
+
name: string;
|
|
103
|
+
params: Record<string, unknown>;
|
|
104
|
+
};
|
|
105
|
+
export declare function compactValueForHistory(value: unknown, key?: string): unknown;
|
|
106
|
+
export declare function compactActionSummary(action: Pick<ParsedAction, 'name' | 'params'>): string;
|
|
107
|
+
//# sourceMappingURL=continuity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"continuity.d.ts","sourceRoot":"","sources":["../../src/engine/continuity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
import { annotateMessage, stripAnnotationsForDisplay } from '../core/actions.js';
|
|
2
|
+
/**
|
|
3
|
+
* Build the assistant message stored in history.
|
|
4
|
+
*
|
|
5
|
+
* This is the continuity invariant:
|
|
6
|
+
* - future turns see narrative + outcome notes, not raw action payloads
|
|
7
|
+
* - attempted actions are represented by compact natural-language action
|
|
8
|
+
* narration/outcome notes, not by dumping raw params back into the feed
|
|
9
|
+
* - raw/debug action annotations are optional and stripped from LLM history
|
|
10
|
+
* - function-calling providers receive compact action references with large
|
|
11
|
+
* params omitted
|
|
12
|
+
*/
|
|
13
|
+
export function buildAssistantContinuityMessage(input) {
|
|
14
|
+
const outcomeNotes = collectOutcomeNotes(input);
|
|
15
|
+
const narrative = [input.message, ...(input.extraHistorySections ?? [])]
|
|
16
|
+
.map(part => part.trim())
|
|
17
|
+
.filter(Boolean)
|
|
18
|
+
.join('\n');
|
|
19
|
+
if (input.historyTransport === 'compact-function-calls') {
|
|
20
|
+
return JSON.stringify({
|
|
21
|
+
message: annotateMessage(narrative, [], outcomeNotes),
|
|
22
|
+
actions: (input.actionsForHistory ?? []).map(action => compactActionForHistory(action)),
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return annotateMessage(narrative, [...(input.actionAnnotations ?? [])], outcomeNotes);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Prepare a multi-persona chat turn from a turn ledger.
|
|
29
|
+
*
|
|
30
|
+
* When the latest ledger entry came from another participant, that entry is
|
|
31
|
+
* the current message for this actor, not another history item plus a fake
|
|
32
|
+
* "Continue." prompt. Its action outcomes stay attached so the receiving
|
|
33
|
+
* persona sees the teammate's visible message and the factual world changes
|
|
34
|
+
* caused by that turn in one place.
|
|
35
|
+
*
|
|
36
|
+
* The same rule applies when the latest entry is this actor's own turn with
|
|
37
|
+
* action outcomes. The next model call is responding to those outcomes, not
|
|
38
|
+
* to a fresh user request to "continue", so the result stays in the current
|
|
39
|
+
* event instead of being buried in assistant history.
|
|
40
|
+
*/
|
|
41
|
+
export function prepareTurnLedgerChatTurn(entries, options) {
|
|
42
|
+
const ledger = [...(entries ?? [])];
|
|
43
|
+
const latest = ledger.at(-1);
|
|
44
|
+
if (!latest) {
|
|
45
|
+
return { message: options.fallbackMessage, turnLedger: ledger, source: 'fallback' };
|
|
46
|
+
}
|
|
47
|
+
const latestIsFreshPeerTurn = Boolean(latest.actorId
|
|
48
|
+
&& options.perspectiveActorId
|
|
49
|
+
&& latest.actorId !== options.perspectiveActorId);
|
|
50
|
+
const latestIsOwnActionOutcome = Boolean(latest.actorId
|
|
51
|
+
&& options.perspectiveActorId
|
|
52
|
+
&& latest.actorId === options.perspectiveActorId
|
|
53
|
+
&& latest.actionOutcomes?.length);
|
|
54
|
+
if (!latestIsFreshPeerTurn) {
|
|
55
|
+
if (latestIsOwnActionOutcome) {
|
|
56
|
+
return {
|
|
57
|
+
message: buildOwnActionOutcomeCurrentMessage(latest, options),
|
|
58
|
+
turnLedger: ledger.slice(0, -1),
|
|
59
|
+
source: 'own-action-outcome',
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return { message: options.fallbackMessage, turnLedger: ledger, source: 'fallback' };
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
message: buildTurnLedgerCurrentMessage(latest, options),
|
|
66
|
+
turnLedger: ledger.slice(0, -1),
|
|
67
|
+
source: 'fresh-peer-turn',
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function buildOwnActionOutcomeCurrentMessage(entry, options) {
|
|
71
|
+
return [
|
|
72
|
+
[
|
|
73
|
+
'Current work stream from your previous turn.',
|
|
74
|
+
'Read the block below as one chronological event: your narration/inner voice, then compact action narration, then factual outcomes.',
|
|
75
|
+
'The action narration is not a raw action dump; raw parameters are omitted because they can bloat or contaminate the feed and may describe action APIs no longer available.',
|
|
76
|
+
'Successful outcomes already changed the world; failed outcomes did not. Use the stream as current world state.',
|
|
77
|
+
].join('\n'),
|
|
78
|
+
buildAssistantContinuityMessage({
|
|
79
|
+
message: labelTurnLedgerMessage(entry.message, entry, { ...options, speakerLabels: false }),
|
|
80
|
+
modelOutcomeNotes: entry.outcomeNotes,
|
|
81
|
+
actionOutcomes: entry.actionOutcomes,
|
|
82
|
+
actionsForHistory: entry.actionsForHistory,
|
|
83
|
+
historyTransport: options.historyTransport,
|
|
84
|
+
entryTurn: entry.turn,
|
|
85
|
+
currentTurn: options.currentTurn,
|
|
86
|
+
}),
|
|
87
|
+
].filter(Boolean).join('\n\n');
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Render a turn ledger into model-facing chat history.
|
|
91
|
+
*
|
|
92
|
+
* This is the locked continuity path for multi-agent/custom-loop apps:
|
|
93
|
+
* visible chat and action outcomes travel together, raw action payloads do
|
|
94
|
+
* not, and actor ids are mapped into user/assistant roles per recipient.
|
|
95
|
+
*/
|
|
96
|
+
export function renderTurnLedgerForModel(entries, options = {}) {
|
|
97
|
+
return (entries ?? [])
|
|
98
|
+
.map(entry => renderTurnLedgerEntryForModel(entry, options))
|
|
99
|
+
.filter((entry) => Boolean(entry?.content.trim()));
|
|
100
|
+
}
|
|
101
|
+
export function renderTurnLedgerEntryForModel(entry, options = {}) {
|
|
102
|
+
const message = entry.message.trim();
|
|
103
|
+
if (!message)
|
|
104
|
+
return null;
|
|
105
|
+
const role = resolveLedgerRole(entry, options.perspectiveActorId);
|
|
106
|
+
const historyTransport = role === 'assistant' ? options.historyTransport : undefined;
|
|
107
|
+
const labeledMessage = labelTurnLedgerMessage(message, entry, options);
|
|
108
|
+
const actionOutcomes = entry.actorId && entry.actorId === options.omitActionOutcomesForActorId
|
|
109
|
+
? compactOwnActionOutcomes(entry.actionOutcomes)
|
|
110
|
+
: entry.actionOutcomes;
|
|
111
|
+
return {
|
|
112
|
+
role,
|
|
113
|
+
content: buildAssistantContinuityMessage({
|
|
114
|
+
message: labeledMessage,
|
|
115
|
+
modelOutcomeNotes: entry.outcomeNotes,
|
|
116
|
+
actionOutcomes,
|
|
117
|
+
actionAnnotations: entry.actionAnnotations,
|
|
118
|
+
actionsForHistory: entry.actionsForHistory,
|
|
119
|
+
historyTransport,
|
|
120
|
+
entryTurn: entry.turn,
|
|
121
|
+
currentTurn: options.currentTurn,
|
|
122
|
+
}),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
function compactOwnActionOutcomes(outcomes) {
|
|
126
|
+
if (!outcomes?.length)
|
|
127
|
+
return undefined;
|
|
128
|
+
return outcomes.map(outcome => ({
|
|
129
|
+
...outcome,
|
|
130
|
+
outcomeNote: outcome.resultText
|
|
131
|
+
? compactOwnActionOutcomeNote(outcome)
|
|
132
|
+
: outcome.outcomeNote,
|
|
133
|
+
resultText: undefined,
|
|
134
|
+
resultTurns: undefined,
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
function compactOwnActionOutcomeNote(outcome) {
|
|
138
|
+
const summary = outcome.action ? compactActionSummary(outcome.action) : 'action';
|
|
139
|
+
const error = outcome.error?.trim();
|
|
140
|
+
if (outcome.status === 'failed' || outcome.success === false) {
|
|
141
|
+
return error ? `${summary} failed: ${error}` : `${summary} failed.`;
|
|
142
|
+
}
|
|
143
|
+
if (outcome.status === 'no_op') {
|
|
144
|
+
return error ? `${summary} made no state change: ${error}` : `${summary} made no state change.`;
|
|
145
|
+
}
|
|
146
|
+
if (outcome.status === 'proposed') {
|
|
147
|
+
return `${summary} was proposed but not executed yet.`;
|
|
148
|
+
}
|
|
149
|
+
if (outcome.status === 'executed' || outcome.success === true) {
|
|
150
|
+
return `${summary} executed.`;
|
|
151
|
+
}
|
|
152
|
+
return `${summary} completed.`;
|
|
153
|
+
}
|
|
154
|
+
function buildTurnLedgerCurrentMessage(entry, options) {
|
|
155
|
+
return buildAssistantContinuityMessage({
|
|
156
|
+
message: labelTurnLedgerMessage(entry.message, entry, options),
|
|
157
|
+
modelOutcomeNotes: entry.outcomeNotes,
|
|
158
|
+
actionOutcomes: entry.actionOutcomes,
|
|
159
|
+
actionsForHistory: entry.actionsForHistory,
|
|
160
|
+
historyTransport: options.historyTransport,
|
|
161
|
+
entryTurn: entry.turn,
|
|
162
|
+
currentTurn: options.currentTurn,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
export function renderTurnLedgerForDisplay(entries, options = {}) {
|
|
166
|
+
return renderTurnLedgerForModel(entries, { ...options, speakerLabels: false })
|
|
167
|
+
.map(entry => ({
|
|
168
|
+
...entry,
|
|
169
|
+
content: stripAnnotationsForDisplay(entry.content),
|
|
170
|
+
}));
|
|
171
|
+
}
|
|
172
|
+
function labelTurnLedgerMessage(message, entry, options = {}) {
|
|
173
|
+
const trimmed = message.trim();
|
|
174
|
+
if (options.speakerLabels === false)
|
|
175
|
+
return trimmed;
|
|
176
|
+
if (!entry.actorId)
|
|
177
|
+
return trimmed;
|
|
178
|
+
const label = resolveParticipantLabel(entry.actorId, options.participants);
|
|
179
|
+
return `${label}:\n${trimmed}`;
|
|
180
|
+
}
|
|
181
|
+
function resolveParticipantLabel(actorId, participants) {
|
|
182
|
+
return participants?.find(participant => participant.id === actorId)?.label
|
|
183
|
+
?? humanizeActorId(actorId);
|
|
184
|
+
}
|
|
185
|
+
function humanizeActorId(actorId) {
|
|
186
|
+
return actorId
|
|
187
|
+
.split(/[-_\s]+/u)
|
|
188
|
+
.filter(Boolean)
|
|
189
|
+
.map(part => part.charAt(0).toUpperCase() + part.slice(1))
|
|
190
|
+
.join(' ')
|
|
191
|
+
|| actorId;
|
|
192
|
+
}
|
|
193
|
+
export function collectOutcomeNotes(input) {
|
|
194
|
+
const notes = [
|
|
195
|
+
...(input.modelOutcomeNotes ?? []),
|
|
196
|
+
...(input.actionOutcomes ?? []).map(outcome => buildOutcomeNoteFromActionOutcome(outcome, input)),
|
|
197
|
+
];
|
|
198
|
+
return [...new Set(notes.map(note => note?.trim()).filter((note) => Boolean(note)))];
|
|
199
|
+
}
|
|
200
|
+
export function buildOutcomeNoteFromActionOutcome(outcome, options = {}) {
|
|
201
|
+
const liveResult = resolveLiveOutcomeResult(outcome, options);
|
|
202
|
+
if (liveResult)
|
|
203
|
+
return liveResult;
|
|
204
|
+
const explicit = outcome.outcomeNote?.trim();
|
|
205
|
+
if (explicit)
|
|
206
|
+
return explicit;
|
|
207
|
+
const summary = outcome.action ? compactActionSummary(outcome.action) : 'action';
|
|
208
|
+
const error = outcome.error?.trim();
|
|
209
|
+
const status = outcome.status;
|
|
210
|
+
if (status === 'failed' || outcome.success === false) {
|
|
211
|
+
return error ? `${summary} failed: ${error}` : `${summary} failed.`;
|
|
212
|
+
}
|
|
213
|
+
if (status === 'no_op') {
|
|
214
|
+
return error ? `${summary} made no state change: ${error}` : `${summary} made no state change.`;
|
|
215
|
+
}
|
|
216
|
+
if (status === 'proposed') {
|
|
217
|
+
return `${summary} was proposed but not executed yet.`;
|
|
218
|
+
}
|
|
219
|
+
if (typeof outcome.text === 'string') {
|
|
220
|
+
const squashed = squashWhitespace(outcome.text);
|
|
221
|
+
if (squashed.length > 0 && squashed.length <= 140 && !outcome.text.includes('\n')) {
|
|
222
|
+
return squashed;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
if (status === 'executed' || outcome.success === true) {
|
|
226
|
+
return `${summary} executed.`;
|
|
227
|
+
}
|
|
228
|
+
return outcome.action ? `${summary} completed.` : null;
|
|
229
|
+
}
|
|
230
|
+
function resolveLiveOutcomeResult(outcome, options) {
|
|
231
|
+
const resultText = outcome.resultText?.trim();
|
|
232
|
+
if (!resultText)
|
|
233
|
+
return null;
|
|
234
|
+
const resultTurns = outcome.resultTurns ?? 0;
|
|
235
|
+
if (resultTurns <= 0)
|
|
236
|
+
return outcome.staleText?.trim() || null;
|
|
237
|
+
if (typeof options.entryTurn !== 'number' || typeof options.currentTurn !== 'number')
|
|
238
|
+
return null;
|
|
239
|
+
const age = options.currentTurn - options.entryTurn;
|
|
240
|
+
if (age >= 1 && age <= resultTurns)
|
|
241
|
+
return resultText;
|
|
242
|
+
if (age > resultTurns)
|
|
243
|
+
return outcome.staleText?.trim() || null;
|
|
244
|
+
return resultText;
|
|
245
|
+
}
|
|
246
|
+
export function compactActionForHistory(action) {
|
|
247
|
+
return {
|
|
248
|
+
name: action.name,
|
|
249
|
+
params: compactValueForHistory(action.params),
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
export function compactValueForHistory(value, key) {
|
|
253
|
+
if (typeof value === 'string') {
|
|
254
|
+
const bytes = Buffer.byteLength(value, 'utf8');
|
|
255
|
+
const looksLargeBody = bytes > 160
|
|
256
|
+
|| key === 'content'
|
|
257
|
+
|| key === 'stdout'
|
|
258
|
+
|| key === 'stderr'
|
|
259
|
+
|| key === 'text'
|
|
260
|
+
|| key === 'oldText'
|
|
261
|
+
|| key === 'newText'
|
|
262
|
+
|| key === 'patch';
|
|
263
|
+
if (looksLargeBody)
|
|
264
|
+
return `<omitted ${bytes} bytes>`;
|
|
265
|
+
return value;
|
|
266
|
+
}
|
|
267
|
+
if (Array.isArray(value)) {
|
|
268
|
+
if (key === 'command') {
|
|
269
|
+
return value.slice(0, 8).map(item => compactValueForHistory(item));
|
|
270
|
+
}
|
|
271
|
+
if (key === 'edits') {
|
|
272
|
+
return `<omitted ${value.length} edit${value.length === 1 ? '' : 's'}>`;
|
|
273
|
+
}
|
|
274
|
+
return value.slice(0, 8).map(item => compactValueForHistory(item));
|
|
275
|
+
}
|
|
276
|
+
if (value && typeof value === 'object') {
|
|
277
|
+
const compacted = {};
|
|
278
|
+
for (const [childKey, childValue] of Object.entries(value)) {
|
|
279
|
+
compacted[childKey] = compactValueForHistory(childValue, childKey);
|
|
280
|
+
}
|
|
281
|
+
return compacted;
|
|
282
|
+
}
|
|
283
|
+
return value;
|
|
284
|
+
}
|
|
285
|
+
export function compactActionSummary(action) {
|
|
286
|
+
const keep = {};
|
|
287
|
+
for (const refKey of ['path', 'pattern', 'pathGlob', 'id', 'entity', 'name', 'outcome', 'summary', 'label']) {
|
|
288
|
+
if (refKey in action.params && action.params[refKey] !== undefined) {
|
|
289
|
+
keep[refKey] = action.params[refKey];
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
if (action.name === 'editFile') {
|
|
293
|
+
const edits = action.params.edits;
|
|
294
|
+
keep.editCount = Array.isArray(edits) ? edits.length : (action.params.oldText !== undefined ? 1 : 0);
|
|
295
|
+
}
|
|
296
|
+
if (action.name === 'writeFile') {
|
|
297
|
+
const content = action.params.content;
|
|
298
|
+
if (typeof content === 'string')
|
|
299
|
+
keep.bytes = Buffer.byteLength(content, 'utf8');
|
|
300
|
+
}
|
|
301
|
+
if (action.name === 'applyPatch') {
|
|
302
|
+
const patch = action.params.patch;
|
|
303
|
+
if (typeof patch === 'string')
|
|
304
|
+
keep.bytes = Buffer.byteLength(patch, 'utf8');
|
|
305
|
+
}
|
|
306
|
+
const kvs = Object.entries(keep)
|
|
307
|
+
.map(([key, value]) => `${key}=${JSON.stringify(value)}`)
|
|
308
|
+
.join(', ');
|
|
309
|
+
return kvs ? `${action.name} {${kvs}}` : action.name;
|
|
310
|
+
}
|
|
311
|
+
function squashWhitespace(text) {
|
|
312
|
+
return text.replace(/\s+/gu, ' ').trim();
|
|
313
|
+
}
|
|
314
|
+
function resolveLedgerRole(entry, perspectiveActorId) {
|
|
315
|
+
if (perspectiveActorId && entry.actorId) {
|
|
316
|
+
return entry.actorId === perspectiveActorId ? 'assistant' : 'user';
|
|
317
|
+
}
|
|
318
|
+
return entry.role ?? 'assistant';
|
|
319
|
+
}
|
|
320
|
+
//# sourceMappingURL=continuity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"continuity.js","sourceRoot":"","sources":["../../src/engine/continuity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { CrudAction, EntityConfig, ParsedAction, TurnTrace } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Validate raw CRUD actions against registered entity schemas.
|
|
4
|
+
* Returns valid + invalid lists.
|
|
5
|
+
*/
|
|
6
|
+
export declare function validateCrudActions(raw: CrudAction[], entities: Record<string, EntityConfig>): {
|
|
7
|
+
valid: CrudAction[];
|
|
8
|
+
invalid: Array<{
|
|
9
|
+
action: CrudAction;
|
|
10
|
+
error: string;
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Generate an action annotation string for a CRUD action.
|
|
15
|
+
* Uses the entity's displayField to create human-readable annotations like:
|
|
16
|
+
* created thread: "Roadmap prioritization"
|
|
17
|
+
*/
|
|
18
|
+
export declare function crudActionToAnnotation(action: CrudAction, entities: Record<string, EntityConfig>): string;
|
|
19
|
+
/**
|
|
20
|
+
* Separate CRUD actions from regular actions in a validated action list.
|
|
21
|
+
* Handles stringified params (Gemini quirk) and legacy top-level crudActions.
|
|
22
|
+
*/
|
|
23
|
+
export declare function separateCrudActions(actions: ParsedAction[], legacyCrud?: CrudAction[]): {
|
|
24
|
+
crudActions: CrudAction[];
|
|
25
|
+
nonCrudActions: ParsedAction[];
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Validate CRUD actions against entity schemas and populate the trace.
|
|
29
|
+
* Returns the valid subset; invalid actions are logged to trace.errors.
|
|
30
|
+
*/
|
|
31
|
+
export declare function validateAndTraceCrud(crudActions: CrudAction[], entities: Record<string, EntityConfig>, trace: TurnTrace): CrudAction[] | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Resolve temp IDs (prefixed with `_`) to real UUIDs.
|
|
34
|
+
* The AI generates `_w1`, `_ex1` etc. as cross-reference handles within a single response.
|
|
35
|
+
* This replaces them with permanent UUIDs before handlers see them.
|
|
36
|
+
*
|
|
37
|
+
* Resolves both `action.id` on creates and any string param values that match a temp ID.
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolveTempIds(actions: CrudAction[]): CrudAction[];
|
|
40
|
+
export interface CrudEntityHandler {
|
|
41
|
+
create?: (id: string, params: Record<string, unknown>) => Promise<CrudCommitResult>;
|
|
42
|
+
update?: (id: string, params: Record<string, unknown>) => Promise<CrudCommitResult>;
|
|
43
|
+
delete?: (id: string) => Promise<CrudCommitResult>;
|
|
44
|
+
}
|
|
45
|
+
export interface CrudCommitResult {
|
|
46
|
+
success: boolean;
|
|
47
|
+
error?: string;
|
|
48
|
+
data?: unknown;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Execute validated CRUD actions through entity-keyed handlers.
|
|
52
|
+
* This is the commit gate — the app calls this when ready to persist.
|
|
53
|
+
*
|
|
54
|
+
* Actions should be pre-validated (validateCrudActions) and temp-ID-resolved
|
|
55
|
+
* (resolveTempIds) before calling commitCrud.
|
|
56
|
+
*
|
|
57
|
+
* If a trace is provided, populates trace.domainActions with timing and status.
|
|
58
|
+
*/
|
|
59
|
+
export declare function commitCrud(actions: CrudAction[], handlers: Record<string, CrudEntityHandler>, options?: {
|
|
60
|
+
trace?: TurnTrace;
|
|
61
|
+
}): Promise<CrudCommitResult[]>;
|
|
62
|
+
//# sourceMappingURL=crud.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../src/engine/crud.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAoB,MAAM,aAAa,CAAA;AAEtG;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,UAAU,EAAE,EACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACrC;IAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAuEhF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACrC,MAAM,CAgBR;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,CAAC,EAAE,UAAU,EAAE,GACxB;IAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IAAC,cAAc,EAAE,YAAY,EAAE,CAAA;CAAE,CAwB/D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,UAAU,EAAE,EACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACtC,KAAK,EAAE,SAAS,GACf,UAAU,EAAE,GAAG,SAAS,CAuC1B;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAkBlE;AAgBD,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACnF,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACnF,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;CACnD;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,UAAU,EAAE,EACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAC3C,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GAC9B,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoD7B"}
|