@hol-org/cigar 0.9.4

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 (78) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +5 -0
  3. package/README.md +68 -0
  4. package/dist/client.d.ts +16 -0
  5. package/dist/client.d.ts.map +1 -0
  6. package/dist/client.js +839 -0
  7. package/dist/client.js.map +1 -0
  8. package/dist/digest.d.ts +21 -0
  9. package/dist/digest.d.ts.map +1 -0
  10. package/dist/digest.js +406 -0
  11. package/dist/digest.js.map +1 -0
  12. package/dist/errors.d.ts +35 -0
  13. package/dist/errors.d.ts.map +1 -0
  14. package/dist/errors.js +54 -0
  15. package/dist/errors.js.map +1 -0
  16. package/dist/examples/quickstart.d.ts +2 -0
  17. package/dist/examples/quickstart.d.ts.map +1 -0
  18. package/dist/examples/quickstart.js +32 -0
  19. package/dist/examples/quickstart.js.map +1 -0
  20. package/dist/examples/two-agent-observer.d.ts +9 -0
  21. package/dist/examples/two-agent-observer.d.ts.map +1 -0
  22. package/dist/examples/two-agent-observer.js +59 -0
  23. package/dist/examples/two-agent-observer.js.map +1 -0
  24. package/dist/examples/verify-shared-bundle.d.ts +2 -0
  25. package/dist/examples/verify-shared-bundle.d.ts.map +1 -0
  26. package/dist/examples/verify-shared-bundle.js +13 -0
  27. package/dist/examples/verify-shared-bundle.js.map +1 -0
  28. package/dist/generated/cigar_service_pb.d.ts +642 -0
  29. package/dist/generated/cigar_service_pb.d.ts.map +1 -0
  30. package/dist/generated/cigar_service_pb.js +55 -0
  31. package/dist/generated/cigar_service_pb.js.map +1 -0
  32. package/dist/generated/context_abi_pb.d.ts +3429 -0
  33. package/dist/generated/context_abi_pb.d.ts.map +1 -0
  34. package/dist/generated/context_abi_pb.js +1386 -0
  35. package/dist/generated/context_abi_pb.js.map +1 -0
  36. package/dist/generated/errors.d.ts +242 -0
  37. package/dist/generated/errors.d.ts.map +1 -0
  38. package/dist/generated/errors.js +38 -0
  39. package/dist/generated/errors.js.map +1 -0
  40. package/dist/generated/generated/error_codes_pb.d.ts +188 -0
  41. package/dist/generated/generated/error_codes_pb.d.ts.map +1 -0
  42. package/dist/generated/generated/error_codes_pb.js +191 -0
  43. package/dist/generated/generated/error_codes_pb.js.map +1 -0
  44. package/dist/generated/models.d.ts +472 -0
  45. package/dist/generated/models.d.ts.map +1 -0
  46. package/dist/generated/models.js +314 -0
  47. package/dist/generated/models.js.map +1 -0
  48. package/dist/generated/operations.d.ts +912 -0
  49. package/dist/generated/operations.d.ts.map +1 -0
  50. package/dist/generated/operations.js +50 -0
  51. package/dist/generated/operations.js.map +1 -0
  52. package/dist/idempotency.d.ts +3 -0
  53. package/dist/idempotency.d.ts.map +1 -0
  54. package/dist/idempotency.js +16 -0
  55. package/dist/idempotency.js.map +1 -0
  56. package/dist/index.d.ts +13 -0
  57. package/dist/index.d.ts.map +1 -0
  58. package/dist/index.js +13 -0
  59. package/dist/index.js.map +1 -0
  60. package/dist/release.json +6 -0
  61. package/dist/types.d.ts +115 -0
  62. package/dist/types.d.ts.map +1 -0
  63. package/dist/types.js +3 -0
  64. package/dist/types.js.map +1 -0
  65. package/dist/verify-replay.d.ts +3 -0
  66. package/dist/verify-replay.d.ts.map +1 -0
  67. package/dist/verify-replay.js +391 -0
  68. package/dist/verify-replay.js.map +1 -0
  69. package/dist/verify-vectors.d.ts +3 -0
  70. package/dist/verify-vectors.d.ts.map +1 -0
  71. package/dist/verify-vectors.js +383 -0
  72. package/dist/verify-vectors.js.map +1 -0
  73. package/dist/workflow-session.d.ts +93 -0
  74. package/dist/workflow-session.d.ts.map +1 -0
  75. package/dist/workflow-session.js +550 -0
  76. package/dist/workflow-session.js.map +1 -0
  77. package/fixtures/semantic-bundle-v1.json +13 -0
  78. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-session.js","sourceRoot":"","sources":["../src/workflow-session.ts"],"names":[],"mappings":"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","sourcesContent":["/** Identity-only state tracking for deterministic workflow context cycles. */\n\nimport { CigarError } from \"./errors.js\";\n\nexport const MAX_WORKFLOW_DELTA_CHAIN_LENGTH = 8;\nexport const MAX_WORKFLOW_REPLAY_CYCLES = 64;\n\nexport const WORKFLOW_CONTEXT_PHASES = [\n \"new\", \"plan_created\", \"target_bundle_loaded\", \"delta_compiled\", \"bundle_ready\", \"materialized\",\n \"model_invocation_pending\", \"model_result_recorded\", \"effect_prepared\", \"observation_recorded\",\n \"effect_authorization_revalidated\", \"effect_authorized\", \"effect_revalidated\", \"effect_dispatching\",\n \"effect_ambiguous\", \"effect_settled\", \"checkpointed\", \"finished\", \"replay_verified\", \"quarantined\",\n] as const;\nexport type WorkflowContextPhase = typeof WORKFLOW_CONTEXT_PHASES[number];\n\nexport const WORKFLOW_RESUME_ACTIONS = [\n \"create_context_plan\", \"compile_context_bundle\", \"compile_context_delta\", \"apply_context_delta\",\n \"materialize_context_bundle\", \"begin_model_invocation\", \"resume_model_invocation\",\n \"prepare_effect_or_ingest_observation\", \"ingest_observation\", \"authorize_effect_or_checkpoint\",\n \"revalidate_context_bundle\", \"dispatch_effect\", \"observe_effect\", \"reconcile_effect\", \"checkpoint\",\n \"materialize_or_finish\", \"replay\", \"complete\",\n] as const;\nexport type WorkflowResumeAction = typeof WORKFLOW_RESUME_ACTIONS[number];\n\nexport const WORKFLOW_SESSION_ERROR_CODES = [\n \"invalid_transition\", \"invalid_event\", \"identity_mismatch\", \"invalidated\", \"limit_exceeded\",\n] as const;\nexport type WorkflowSessionErrorCode = typeof WORKFLOW_SESSION_ERROR_CODES[number];\n\nexport const WORKFLOW_SESSION_EVENT_NAMES = [\n \"plan_created\", \"bundle_compiled\", \"delta_compiled\", \"delta_applied\", \"materialized\",\n \"model_invocation_started\", \"model_result_recorded\", \"effect_prepared\", \"observation_recorded\",\n \"effect_authorized\", \"effect_revalidated\", \"effect_dispatched\", \"effect_observed\", \"cycle_checkpointed\",\n \"finished\", \"replay_verified\", \"context_quarantined\",\n] as const;\n\nexport const WORKFLOW_QUARANTINE_REASONS = [\"cancelled\", \"revoked\", \"invalidated\"] as const;\nexport type WorkflowQuarantineReason = typeof WORKFLOW_QUARANTINE_REASONS[number];\n\nconst ACTION_OPERATIONS = {\n create_context_plan: \"createContextPlan\",\n compile_context_bundle: \"compileContextBundle\",\n compile_context_delta: \"compileContextDelta\",\n apply_context_delta: null,\n materialize_context_bundle: \"materializeContextBundle\",\n begin_model_invocation: null,\n resume_model_invocation: null,\n prepare_effect_or_ingest_observation: null,\n ingest_observation: \"ingestCatalog\",\n authorize_effect_or_checkpoint: \"authorizeEffect\",\n revalidate_context_bundle: \"revalidateContextBundle\",\n dispatch_effect: \"dispatchEffect\",\n observe_effect: \"getEffectStatus\",\n reconcile_effect: \"reconcileEffect\",\n checkpoint: null,\n materialize_or_finish: null,\n replay: \"createReplay\",\n complete: null,\n} as const satisfies Readonly<Record<WorkflowResumeAction, string | null>>;\n\nexport function workflowOperationId(action: WorkflowResumeAction): string | null {\n return ACTION_OPERATIONS[action];\n}\n\nexport class WorkflowSessionError extends CigarError {\n readonly code: WorkflowSessionErrorCode;\n\n constructor(code: WorkflowSessionErrorCode) {\n super(`workflow context transition failed: ${code}`);\n this.code = code;\n }\n}\n\ntype ContextIdentity = Readonly<{ planId: string; bundleId: string; contractDigest: string }>;\ntype DeltaIdentity = Readonly<{ baseBundleId: string; targetBundleId: string; deltaDigest: string }>;\nexport type WorkflowEffectState =\n | \"prepared\" | \"authorized\" | \"dispatching\" | \"unknown\" | \"authorized_for_retry\"\n | \"succeeded\" | \"failed\" | \"manual_resolution\" | \"rejected\" | \"expired\" | \"cancelled\"\n | \"compensated\" | \"compensation_failed\";\ntype EffectIdentity = Readonly<{\n effectId: string;\n intentDigest: string;\n effectVersion: bigint;\n state: WorkflowEffectState;\n attemptCount: number;\n reconciliationCount: number;\n}>;\n\nexport type WorkflowReplayDiffStatus = \"equal\" | \"different\";\nexport type WorkflowDeltaReplayIdentity = Readonly<{\n baseBundleId: string;\n targetBundleId: string;\n deltaDigest: string;\n}>;\nexport type WorkflowEffectReplayIdentity = Readonly<EffectIdentity>;\nexport type WorkflowContextCycleIdentity = Readonly<{\n planId: string;\n bundleId: string;\n contractDigest: string;\n selectedDelta?: WorkflowDeltaReplayIdentity;\n materializedBundleId: string;\n tokenizerFingerprint: string;\n materializerFingerprint: string;\n physicalInputTokens: number;\n invocationId: string;\n requestDigest: string;\n idempotencyKeyDigest: string;\n modelResultDigest: string;\n effect?: WorkflowEffectReplayIdentity;\n outcomeDigest: string;\n outcomeRevision: bigint;\n}>;\nexport type WorkflowContextReplayIdentity = Readonly<{\n cycles: readonly WorkflowContextCycleIdentity[];\n}>;\nexport type WorkflowContextReplayComparison = Readonly<{\n bundleDeltaSelection: WorkflowReplayDiffStatus;\n materialization: WorkflowReplayDiffStatus;\n modelResultIdentity: WorkflowReplayDiffStatus;\n toolEffectDecisions: WorkflowReplayDiffStatus;\n outcome: WorkflowReplayDiffStatus;\n exactMatch: boolean;\n}>;\n\ntype MaterializationIdentity = Readonly<{\n bundleId: string;\n tokenizerFingerprint: string;\n materializerFingerprint: string;\n physicalInputTokens: number;\n}>;\ntype InvocationIdentity = Readonly<{\n invocationId: string;\n requestDigest: string;\n idempotencyKeyDigest: string;\n}>;\n\nconst DIGEST = /^1220[0-9a-f]{64}$/;\nconst UUID_V7 = /^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;\nconst TERMINAL_EFFECT_STATES: ReadonlySet<WorkflowEffectState> = new Set([\n \"succeeded\", \"failed\", \"manual_resolution\", \"rejected\", \"expired\", \"cancelled\", \"compensated\",\n \"compensation_failed\",\n]);\n\n/** Mutable, content-safe helper for one context lifecycle. Successful boundaries advance it atomically. */\nexport class WorkflowContextSession {\n #phase: WorkflowContextPhase = \"new\";\n #completedTurns = 0;\n #deltaChainLength = 0;\n #activeContext: ContextIdentity | undefined;\n #pendingContext: ContextIdentity | undefined;\n #pendingDelta: DeltaIdentity | undefined;\n #selectedDelta: DeltaIdentity | undefined;\n #materialization: MaterializationIdentity | undefined;\n #invocation: InvocationIdentity | undefined;\n #modelResultDigest: string | undefined;\n #observationDigest: string | undefined;\n #observationRevision: bigint | undefined;\n #effect: EffectIdentity | undefined;\n #completedCycles: WorkflowContextCycleIdentity[] = [];\n #replayVerified = false;\n #quarantineReason: WorkflowQuarantineReason | undefined;\n\n get phase(): WorkflowContextPhase { return this.#phase; }\n get completedTurns(): number { return this.#completedTurns; }\n get deltaChainLength(): number { return this.#deltaChainLength; }\n get activeBundleId(): string | undefined { return this.#activeContext?.bundleId; }\n\n replayIdentity(): WorkflowContextReplayIdentity {\n this.#requirePhase(\"finished\", \"replay_verified\");\n if (this.#completedCycles.length === 0) fail(\"invalid_transition\");\n return cloneReplayIdentity({ cycles: this.#completedCycles });\n }\n\n compareReplay(candidate: WorkflowContextReplayIdentity): WorkflowContextReplayComparison {\n const baseline = this.replayIdentity();\n validateReplayIdentity(candidate);\n return compareWorkflowReplay(baseline, candidate);\n }\n\n get resumeAction(): WorkflowResumeAction {\n switch (this.#phase) {\n case \"new\": case \"observation_recorded\": return \"create_context_plan\";\n case \"plan_created\": return \"compile_context_bundle\";\n case \"target_bundle_loaded\": return \"compile_context_delta\";\n case \"delta_compiled\": return \"apply_context_delta\";\n case \"bundle_ready\":\n if (this.#modelResultDigest === undefined) return \"materialize_context_bundle\";\n return this.#effect === undefined ? \"checkpoint\" : \"revalidate_context_bundle\";\n case \"materialized\": return \"begin_model_invocation\";\n case \"model_invocation_pending\": return \"resume_model_invocation\";\n case \"model_result_recorded\": return \"prepare_effect_or_ingest_observation\";\n case \"effect_prepared\": return \"ingest_observation\";\n case \"effect_authorization_revalidated\": return \"authorize_effect_or_checkpoint\";\n case \"effect_authorized\": return \"revalidate_context_bundle\";\n case \"effect_revalidated\": return \"dispatch_effect\";\n case \"effect_dispatching\": return \"observe_effect\";\n case \"effect_ambiguous\": return \"reconcile_effect\";\n case \"effect_settled\": return \"checkpoint\";\n case \"checkpointed\": return \"materialize_or_finish\";\n case \"finished\": return \"replay\";\n case \"replay_verified\": case \"quarantined\": return \"complete\";\n }\n }\n\n toString(): string {\n return `WorkflowContextSession(phase=${this.#phase}, completedTurns=${this.#completedTurns}, `\n + `deltaChainLength=${this.#deltaChainLength}, hasActiveContext=${this.#activeContext !== undefined}, `\n + `hasPendingContext=${this.#pendingContext !== undefined}, hasPendingDelta=${this.#pendingDelta !== undefined}, `\n + `hasSelectedDelta=${this.#selectedDelta !== undefined}, hasInvocation=${this.#invocation !== undefined}, `\n + `hasProviderIdempotencyKey=${this.#invocation !== undefined}, `\n + `hasModelResult=${this.#modelResultDigest !== undefined}, `\n + `hasObservation=${this.#observationDigest !== undefined}, effectState=${this.#effect?.state ?? \"none\"}, `\n + `completedCycleCount=${this.#completedCycles.length}, `\n + `quarantineReason=${this.#quarantineReason ?? \"none\"})`;\n }\n\n recordPlanCreated(planId: string, bundleId: string, contractDigest: string): void {\n this.#requirePhase(\"new\", \"observation_recorded\");\n record(planId); digest(bundleId); digest(contractDigest);\n this.#pendingContext = { planId, bundleId, contractDigest };\n this.#pendingDelta = undefined;\n this.#phase = \"plan_created\";\n }\n\n recordBundleCompiled(bundleId: string, contractDigest: string): void {\n this.#requirePhase(\"plan_created\");\n digest(bundleId); digest(contractDigest);\n const pending = this.#pendingContext;\n if (pending === undefined) fail(\"invalid_transition\");\n if (pending.bundleId !== bundleId || pending.contractDigest !== contractDigest) fail(\"identity_mismatch\");\n if (this.#activeContext === undefined || this.#activeContext.bundleId === bundleId) {\n this.#activeContext = pending;\n this.#pendingContext = undefined;\n this.#selectedDelta = undefined;\n if (this.#deltaChainLength >= MAX_WORKFLOW_DELTA_CHAIN_LENGTH) this.#deltaChainLength = 0;\n this.#phase = \"bundle_ready\";\n } else if (this.#deltaChainLength >= MAX_WORKFLOW_DELTA_CHAIN_LENGTH) {\n this.#activeContext = pending;\n this.#pendingContext = undefined;\n this.#selectedDelta = undefined;\n this.#deltaChainLength = 0;\n this.#phase = \"bundle_ready\";\n } else {\n this.#phase = \"target_bundle_loaded\";\n }\n }\n\n recordDeltaCompiled(baseBundleId: string, targetBundleId: string, deltaDigest: string): void {\n this.#requirePhase(\"target_bundle_loaded\");\n if (this.#deltaChainLength >= MAX_WORKFLOW_DELTA_CHAIN_LENGTH) fail(\"limit_exceeded\");\n digest(baseBundleId); digest(targetBundleId); digest(deltaDigest);\n if (this.#activeContext === undefined || this.#pendingContext === undefined) fail(\"invalid_transition\");\n if (this.#activeContext.bundleId !== baseBundleId || this.#pendingContext.bundleId !== targetBundleId) {\n fail(\"identity_mismatch\");\n }\n this.#pendingDelta = { baseBundleId, targetBundleId, deltaDigest };\n this.#phase = \"delta_compiled\";\n }\n\n recordDeltaApplied(baseBundleId: string, targetBundleId: string, deltaDigest: string): void {\n this.#requirePhase(\"delta_compiled\");\n digest(baseBundleId); digest(targetBundleId); digest(deltaDigest);\n const pending = this.#pendingDelta;\n if (pending === undefined) fail(\"invalid_transition\");\n if (pending.baseBundleId !== baseBundleId || pending.targetBundleId !== targetBundleId\n || pending.deltaDigest !== deltaDigest) fail(\"identity_mismatch\");\n if (this.#deltaChainLength >= MAX_WORKFLOW_DELTA_CHAIN_LENGTH) fail(\"limit_exceeded\");\n this.#deltaChainLength += 1;\n this.#selectedDelta = pending;\n this.#activeContext = this.#pendingContext;\n this.#pendingContext = undefined;\n this.#pendingDelta = undefined;\n this.#phase = \"bundle_ready\";\n }\n\n recordMaterialized(\n bundleId: string,\n tokenizerFingerprint: string,\n materializerFingerprint: string,\n physicalInputTokens: number,\n ): void {\n this.#requirePhase(\"bundle_ready\", \"checkpointed\");\n digest(bundleId); digest(tokenizerFingerprint); digest(materializerFingerprint);\n if (this.#modelResultDigest !== undefined || !positiveInteger(physicalInputTokens, 0xffff_ffff)) {\n fail(\"invalid_event\");\n }\n if (this.activeBundleId !== bundleId) fail(\"identity_mismatch\");\n this.#materialization = {\n bundleId, tokenizerFingerprint, materializerFingerprint, physicalInputTokens,\n };\n this.#phase = \"materialized\";\n }\n\n beginModelInvocation(invocationId: string, requestDigest: string, idempotencyKeyDigest: string): void {\n this.#requirePhase(\"materialized\");\n record(invocationId); digest(requestDigest); digest(idempotencyKeyDigest);\n this.#invocation = { invocationId, requestDigest, idempotencyKeyDigest };\n this.#phase = \"model_invocation_pending\";\n }\n\n recordModelResult(invocationId: string, resultDigest: string): void {\n this.#requirePhase(\"model_invocation_pending\");\n record(invocationId); digest(resultDigest);\n if (this.#invocation?.invocationId !== invocationId) fail(\"identity_mismatch\");\n this.#modelResultDigest = resultDigest;\n this.#phase = \"model_result_recorded\";\n }\n\n recordEffectPrepared(\n effectId: string,\n intentDigest: string,\n effectVersion: bigint,\n state: WorkflowEffectState = \"prepared\",\n attemptCount = 0,\n reconciliationCount = 0,\n ): void {\n this.#requirePhase(\"model_result_recorded\");\n record(effectId); digest(intentDigest); positiveBigint(effectVersion);\n if (this.#effect !== undefined || state !== \"prepared\" || !count(attemptCount)\n || !count(reconciliationCount) || attemptCount !== 0 || reconciliationCount !== 0) fail(\"invalid_event\");\n this.#effect = { effectId, intentDigest, effectVersion, state, attemptCount, reconciliationCount };\n this.#phase = \"effect_prepared\";\n }\n\n recordObservation(publicationDigest: string, revision: bigint): void {\n this.#requirePhase(\"model_result_recorded\", \"effect_prepared\");\n digest(publicationDigest); positiveBigint(revision);\n this.#observationDigest = publicationDigest;\n this.#observationRevision = revision;\n this.#phase = \"observation_recorded\";\n }\n\n recordEffectAuthorized(\n effectId: string,\n intentDigest: string,\n effectVersion: bigint,\n state: WorkflowEffectState = \"authorized\",\n attemptCount = 0,\n reconciliationCount = 0,\n ): void {\n this.#requirePhase(\"effect_authorization_revalidated\");\n if (this.#modelResultDigest === undefined || state !== \"authorized\") fail(\"invalid_event\");\n if (this.#effect === undefined || attemptCount !== this.#effect.attemptCount\n || reconciliationCount !== this.#effect.reconciliationCount) fail(\"invalid_event\");\n this.#updateEffect(effectId, intentDigest, effectVersion, state, attemptCount, reconciliationCount, true);\n this.#phase = \"effect_authorized\";\n }\n\n recordEffectRevalidated(bundleId: string, valid: boolean): void {\n const beforeAuthorization = this.#phase === \"bundle_ready\"\n && this.#modelResultDigest !== undefined && this.#effect?.state === \"prepared\";\n if (!beforeAuthorization && this.#phase !== \"effect_authorized\") fail(\"invalid_transition\");\n digest(bundleId);\n if (typeof valid !== \"boolean\") fail(\"invalid_event\");\n if (this.activeBundleId !== bundleId) fail(\"identity_mismatch\");\n if (!valid) {\n this.#enterQuarantine(\"invalidated\");\n } else {\n this.#phase = beforeAuthorization ? \"effect_authorization_revalidated\" : \"effect_revalidated\";\n }\n }\n\n quarantineContext(bundleId: string, reason: WorkflowQuarantineReason): void {\n digest(bundleId);\n if (!(WORKFLOW_QUARANTINE_REASONS as readonly string[]).includes(reason)) fail(\"invalid_event\");\n if ([\"new\", \"finished\", \"replay_verified\", \"quarantined\"].includes(this.#phase)) {\n fail(\"invalid_transition\");\n }\n if (this.activeBundleId !== bundleId) fail(\"identity_mismatch\");\n this.#enterQuarantine(reason);\n }\n\n recordEffectDispatched(\n effectId: string,\n intentDigest: string,\n effectVersion: bigint,\n state: WorkflowEffectState,\n attemptCount: number,\n reconciliationCount: number,\n ): void {\n this.#requirePhase(\"effect_revalidated\");\n if (state !== \"dispatching\" && state !== \"unknown\" && !TERMINAL_EFFECT_STATES.has(state)) {\n fail(\"invalid_event\");\n }\n if (this.#effect === undefined || attemptCount !== this.#effect.attemptCount + 1\n || reconciliationCount !== this.#effect.reconciliationCount) fail(\"invalid_event\");\n this.#updateEffect(effectId, intentDigest, effectVersion, state, attemptCount, reconciliationCount, true);\n this.#phase = effectPhase(state);\n }\n\n recordEffectObserved(\n effectId: string,\n intentDigest: string,\n effectVersion: bigint,\n state: WorkflowEffectState,\n attemptCount: number,\n reconciliationCount: number,\n ): void {\n const allowed = this.#phase === \"effect_dispatching\"\n ? state === \"dispatching\" || state === \"unknown\" || TERMINAL_EFFECT_STATES.has(state)\n : this.#phase === \"effect_ambiguous\"\n && (state === \"unknown\" || state === \"authorized_for_retry\" || TERMINAL_EFFECT_STATES.has(state));\n if (!allowed) fail(\"invalid_transition\");\n if (this.#effect === undefined || attemptCount < this.#effect.attemptCount\n || reconciliationCount < this.#effect.reconciliationCount\n || state === \"authorized_for_retry\" && (attemptCount !== this.#effect.attemptCount\n || reconciliationCount <= this.#effect.reconciliationCount)) fail(\"invalid_event\");\n this.#updateEffect(effectId, intentDigest, effectVersion, state, attemptCount, reconciliationCount, false);\n this.#phase = effectPhase(state);\n }\n\n checkpointCycle(): void {\n const effectComplete = this.#effect === undefined\n ? this.#phase === \"bundle_ready\"\n : this.#phase === \"effect_settled\" && TERMINAL_EFFECT_STATES.has(this.#effect.state);\n if (!effectComplete || this.#modelResultDigest === undefined || this.#observationDigest === undefined) {\n fail(\"invalid_transition\");\n }\n if (this.#completedCycles.length >= MAX_WORKFLOW_REPLAY_CYCLES || this.#completedTurns >= 0xffff_ffff) {\n fail(\"limit_exceeded\");\n }\n const selected = this.#activeContext;\n const materialization = this.#materialization;\n const invocation = this.#invocation;\n const outcomeRevision = this.#observationRevision;\n if (selected === undefined || materialization === undefined || invocation === undefined\n || outcomeRevision === undefined) fail(\"invalid_transition\");\n this.#completedCycles.push({\n planId: selected.planId,\n bundleId: selected.bundleId,\n contractDigest: selected.contractDigest,\n ...(this.#selectedDelta === undefined ? {} : { selectedDelta: { ...this.#selectedDelta } }),\n materializedBundleId: materialization.bundleId,\n tokenizerFingerprint: materialization.tokenizerFingerprint,\n materializerFingerprint: materialization.materializerFingerprint,\n physicalInputTokens: materialization.physicalInputTokens,\n invocationId: invocation.invocationId,\n requestDigest: invocation.requestDigest,\n idempotencyKeyDigest: invocation.idempotencyKeyDigest,\n modelResultDigest: this.#modelResultDigest,\n ...(this.#effect === undefined ? {} : { effect: { ...this.#effect } }),\n outcomeDigest: this.#observationDigest,\n outcomeRevision,\n });\n this.#completedTurns += 1;\n this.#pendingContext = undefined;\n this.#pendingDelta = undefined;\n this.#selectedDelta = undefined;\n this.#materialization = undefined;\n this.#invocation = undefined;\n this.#modelResultDigest = undefined;\n this.#observationDigest = undefined;\n this.#observationRevision = undefined;\n this.#effect = undefined;\n this.#phase = \"checkpointed\";\n }\n\n finish(): void {\n this.#requirePhase(\"checkpointed\");\n if (this.#completedTurns === 0) fail(\"invalid_transition\");\n this.#phase = \"finished\";\n }\n\n recordReplayVerified(\n decisionId: string,\n executionId: string,\n candidate: WorkflowContextReplayIdentity,\n ): WorkflowContextReplayComparison {\n this.#requirePhase(\"finished\");\n digest(decisionId); record(executionId);\n const comparison = this.compareReplay(candidate);\n if (!comparison.exactMatch) fail(\"identity_mismatch\");\n this.#replayVerified = true;\n this.#phase = \"replay_verified\";\n return comparison;\n }\n\n #requirePhase(...allowed: readonly WorkflowContextPhase[]): void {\n if (!allowed.includes(this.#phase)) fail(\"invalid_transition\");\n }\n\n #updateEffect(\n effectId: string,\n intentDigest: string,\n effectVersion: bigint,\n state: WorkflowEffectState,\n attemptCount: number,\n reconciliationCount: number,\n requireNewVersion: boolean,\n ): void {\n record(effectId); digest(intentDigest); positiveBigint(effectVersion);\n if (!count(attemptCount) || !count(reconciliationCount)\n || !effectCountsValid(state, attemptCount, reconciliationCount)) fail(\"invalid_event\");\n const current = this.#effect;\n if (current === undefined) fail(\"invalid_transition\");\n const versionValid = effectVersion > current.effectVersion\n || (!requireNewVersion && effectVersion === current.effectVersion && state === current.state);\n if (effectId !== current.effectId || intentDigest !== current.intentDigest || !versionValid) {\n fail(\"identity_mismatch\");\n }\n this.#effect = { effectId, intentDigest, effectVersion, state, attemptCount, reconciliationCount };\n }\n\n #enterQuarantine(reason: WorkflowQuarantineReason): void {\n this.#pendingContext = undefined;\n this.#pendingDelta = undefined;\n this.#selectedDelta = undefined;\n this.#materialization = undefined;\n this.#invocation = undefined;\n this.#modelResultDigest = undefined;\n this.#observationDigest = undefined;\n this.#observationRevision = undefined;\n this.#effect = undefined;\n this.#replayVerified = false;\n this.#quarantineReason = reason;\n this.#phase = \"quarantined\";\n }\n}\n\nfunction cloneReplayIdentity(identity: WorkflowContextReplayIdentity): WorkflowContextReplayIdentity {\n return {\n cycles: identity.cycles.map((cycle) => ({\n ...cycle,\n ...(cycle.selectedDelta === undefined ? {} : { selectedDelta: { ...cycle.selectedDelta } }),\n ...(cycle.effect === undefined ? {} : { effect: { ...cycle.effect } }),\n })),\n };\n}\n\nfunction validateReplayIdentity(identity: WorkflowContextReplayIdentity): void {\n if (typeof identity !== \"object\" || identity === null || !Array.isArray(identity.cycles)\n || identity.cycles.length === 0 || identity.cycles.length > MAX_WORKFLOW_REPLAY_CYCLES) {\n fail(\"invalid_event\");\n }\n for (const cycle of identity.cycles) {\n record(cycle.planId); digest(cycle.bundleId); digest(cycle.contractDigest);\n digest(cycle.materializedBundleId); digest(cycle.tokenizerFingerprint);\n digest(cycle.materializerFingerprint); record(cycle.invocationId); digest(cycle.requestDigest);\n digest(cycle.idempotencyKeyDigest); digest(cycle.modelResultDigest); digest(cycle.outcomeDigest);\n if (!positiveInteger(cycle.physicalInputTokens, 0xffff_ffff)) fail(\"invalid_event\");\n positiveBigint(cycle.outcomeRevision);\n if (cycle.selectedDelta !== undefined) {\n digest(cycle.selectedDelta.baseBundleId); digest(cycle.selectedDelta.targetBundleId);\n digest(cycle.selectedDelta.deltaDigest);\n if (cycle.selectedDelta.targetBundleId !== cycle.bundleId\n || cycle.selectedDelta.baseBundleId !== cycle.materializedBundleId\n || cycle.selectedDelta.baseBundleId === cycle.selectedDelta.targetBundleId) {\n fail(\"identity_mismatch\");\n }\n }\n if (cycle.effect !== undefined) {\n record(cycle.effect.effectId); digest(cycle.effect.intentDigest);\n positiveBigint(cycle.effect.effectVersion);\n if (!TERMINAL_EFFECT_STATES.has(cycle.effect.state) || !count(cycle.effect.attemptCount)\n || !count(cycle.effect.reconciliationCount)\n || !effectCountsValid(\n cycle.effect.state, cycle.effect.attemptCount, cycle.effect.reconciliationCount,\n )) fail(\"invalid_event\");\n }\n }\n}\n\nfunction compareWorkflowReplay(\n baseline: WorkflowContextReplayIdentity,\n candidate: WorkflowContextReplayIdentity,\n): WorkflowContextReplayComparison {\n const sameLength = baseline.cycles.length === candidate.cycles.length;\n const pairs = baseline.cycles.map((cycle, index) => [cycle, candidate.cycles[index]!] as const);\n const bundleDeltaSelection = comparisonStatus(sameLength && pairs.every(([left, right]) =>\n left.planId === right.planId && left.bundleId === right.bundleId\n && left.contractDigest === right.contractDigest && equalDelta(left.selectedDelta, right.selectedDelta)));\n const materialization = comparisonStatus(sameLength && pairs.every(([left, right]) =>\n left.materializedBundleId === right.materializedBundleId\n && left.tokenizerFingerprint === right.tokenizerFingerprint\n && left.materializerFingerprint === right.materializerFingerprint\n && left.physicalInputTokens === right.physicalInputTokens));\n const modelResultIdentity = comparisonStatus(sameLength && pairs.every(([left, right]) =>\n left.invocationId === right.invocationId && left.requestDigest === right.requestDigest\n && left.idempotencyKeyDigest === right.idempotencyKeyDigest\n && left.modelResultDigest === right.modelResultDigest));\n const toolEffectDecisions = comparisonStatus(sameLength && pairs.every(([left, right]) =>\n equalEffect(left.effect, right.effect)));\n const outcome = comparisonStatus(sameLength && pairs.every(([left, right]) =>\n left.outcomeDigest === right.outcomeDigest && left.outcomeRevision === right.outcomeRevision));\n return {\n bundleDeltaSelection,\n materialization,\n modelResultIdentity,\n toolEffectDecisions,\n outcome,\n exactMatch: [bundleDeltaSelection, materialization, modelResultIdentity, toolEffectDecisions, outcome]\n .every((status) => status === \"equal\"),\n };\n}\n\nfunction comparisonStatus(equal: boolean): WorkflowReplayDiffStatus {\n return equal ? \"equal\" : \"different\";\n}\n\nfunction equalDelta(\n left: WorkflowDeltaReplayIdentity | undefined,\n right: WorkflowDeltaReplayIdentity | undefined,\n): boolean {\n return left === undefined || right === undefined\n ? left === right\n : left.baseBundleId === right.baseBundleId && left.targetBundleId === right.targetBundleId\n && left.deltaDigest === right.deltaDigest;\n}\n\nfunction equalEffect(\n left: WorkflowEffectReplayIdentity | undefined,\n right: WorkflowEffectReplayIdentity | undefined,\n): boolean {\n return left === undefined || right === undefined\n ? left === right\n : left.effectId === right.effectId && left.intentDigest === right.intentDigest\n && left.effectVersion === right.effectVersion && left.state === right.state\n && left.attemptCount === right.attemptCount && left.reconciliationCount === right.reconciliationCount;\n}\n\nfunction fail(code: WorkflowSessionErrorCode): never { throw new WorkflowSessionError(code); }\nfunction digest(value: string): void { if (!DIGEST.test(value)) fail(\"invalid_event\"); }\nfunction record(value: string): void { if (!UUID_V7.test(value)) fail(\"invalid_event\"); }\nfunction positiveBigint(value: bigint): void {\n if (typeof value !== \"bigint\" || value <= 0n || value > 0xffff_ffff_ffff_ffffn) fail(\"invalid_event\");\n}\nfunction positiveInteger(value: number, maximum: number): boolean {\n return Number.isSafeInteger(value) && value > 0 && value <= maximum;\n}\nfunction count(value: number): boolean { return Number.isInteger(value) && value >= 0 && value <= 0xffff_ffff; }\nfunction effectCountsValid(state: WorkflowEffectState, attempts: number, reconciliations: number): boolean {\n if (reconciliations !== 0 && attempts === 0) return false;\n if ([\"prepared\", \"authorized\", \"rejected\"].includes(state)) {\n return attempts === 0 && reconciliations === 0;\n }\n if ([\n \"dispatching\", \"succeeded\", \"failed\", \"unknown\", \"compensated\", \"compensation_failed\",\n ].includes(state)) return attempts !== 0;\n if (state === \"authorized_for_retry\" || state === \"manual_resolution\") {\n return attempts !== 0 && reconciliations !== 0;\n }\n return state === \"expired\" || state === \"cancelled\";\n}\nfunction effectPhase(state: WorkflowEffectState): WorkflowContextPhase {\n if (state === \"dispatching\") return \"effect_dispatching\";\n if (state === \"unknown\") return \"effect_ambiguous\";\n if (state === \"authorized_for_retry\") return \"effect_authorized\";\n if (TERMINAL_EFFECT_STATES.has(state)) return \"effect_settled\";\n return fail(\"invalid_event\");\n}\n"]}
@@ -0,0 +1,13 @@
1
+ {
2
+ "schema_version": "cigar.sdk-semantic-bundle-fixture.v1",
3
+ "bundle": {
4
+ "schema_version": "cigar.context-bundle.v1",
5
+ "bundle_id": "1220d7af77d795d93d836e493e18a574f87daa7b8c40561ce6349bd3d4aa01dedb84",
6
+ "contract_digest": "12201111111111111111111111111111111111111111111111111111111111111111",
7
+ "manifest_digest": "12202222222222222222222222222222222222222222222222222222222222222222",
8
+ "blocks": [],
9
+ "total_tokens": 0,
10
+ "extensions": {}
11
+ },
12
+ "expected_bundle_id": "1220d7af77d795d93d836e493e18a574f87daa7b8c40561ce6349bd3d4aa01dedb84"
13
+ }
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@hol-org/cigar",
3
+ "version": "0.9.4",
4
+ "description": "CIGAR v1 TypeScript SDK",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/hashgraph-online/hol-cigar.git",
9
+ "directory": "sdk/typescript"
10
+ },
11
+ "homepage": "https://github.com/hashgraph-online/hol-cigar#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/hashgraph-online/hol-cigar/issues"
14
+ },
15
+ "publishConfig": {
16
+ "access": "public",
17
+ "registry": "https://registry.npmjs.org/",
18
+ "tag": "alpha"
19
+ },
20
+ "type": "module",
21
+ "packageManager": "pnpm@10.34.5",
22
+ "engines": {
23
+ "node": ">=24.10.0 <25"
24
+ },
25
+ "exports": {
26
+ ".": {
27
+ "types": "./dist/index.d.ts",
28
+ "import": "./dist/index.js"
29
+ }
30
+ },
31
+ "types": "./dist/index.d.ts",
32
+ "files": [
33
+ "dist/",
34
+ "fixtures/",
35
+ "README.md",
36
+ "LICENSE",
37
+ "NOTICE"
38
+ ],
39
+ "sideEffects": false,
40
+ "dependencies": {
41
+ "@bufbuild/protobuf": "2.12.1"
42
+ },
43
+ "devDependencies": {
44
+ "@bufbuild/protoc-gen-es": "2.12.1",
45
+ "@types/node": "24.10.0",
46
+ "typescript": "7.0.2"
47
+ },
48
+ "scripts": {
49
+ "clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
50
+ "generate:check": "python3 ../generate_clients.py --check",
51
+ "build": "pnpm run clean && tsc && node tools/inline-sources.mjs && node -e \"require('node:fs').copyFileSync('release.json','dist/release.json')\"",
52
+ "typecheck": "tsc --noEmit",
53
+ "test": "pnpm run build && node --test dist/tests/*.test.js",
54
+ "prepack": "pnpm run build && node -e \"require('node:fs').rmSync('dist/tests',{recursive:true,force:true})\"",
55
+ "qualify:bundle": "pnpm run build && node dist/examples/verify-shared-bundle.js",
56
+ "vectors": "node src/verify-vectors.ts ../../schemas/vectors/canonical-v1.json",
57
+ "replay": "node src/verify-replay.ts ../../schemas/vectors/replay-v1.json",
58
+ "pack:check": "pnpm run build && node tests/install.mjs"
59
+ }
60
+ }