@almadar/agent 1.6.4 → 2.0.1

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 (107) hide show
  1. package/LICENSE +21 -72
  2. package/README.md +25 -0
  3. package/dist/agent/event-budget.d.ts +28 -0
  4. package/dist/agent/experimental/hitl-v2.d.ts +161 -0
  5. package/dist/agent/experimental/hitl-workflow-integration.d.ts +182 -0
  6. package/dist/agent/index.d.ts +14 -13
  7. package/dist/agent/index.js.map +1 -1
  8. package/dist/agent/interrupt-config.d.ts +51 -0
  9. package/dist/agent/session-manager.d.ts +204 -0
  10. package/dist/agent/skill-agent.d.ts +182 -0
  11. package/dist/agent/workflow-middleware.d.ts +63 -0
  12. package/dist/agent/workflow-tool-wrapper.d.ts +87 -0
  13. package/dist/{api-types-CXrq-fts.d.ts → api-types.d.ts} +85 -51
  14. package/dist/context/compaction.d.ts +191 -0
  15. package/dist/context-compaction.d.ts +55 -0
  16. package/dist/evals/online-sampling.d.ts +114 -0
  17. package/dist/evals/utils/compact-orbital.d.ts +100 -0
  18. package/dist/event-transformer/event-transformer.d.ts +120 -0
  19. package/dist/event-transformer/index.d.ts +4 -122
  20. package/dist/events.d.ts +85 -0
  21. package/dist/index.d.ts +58 -1678
  22. package/dist/index.js +39 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/memory/MemoryManager.d.ts +243 -0
  25. package/dist/memory/PreferenceLearner.d.ts +59 -0
  26. package/dist/memory/agentic-search.d.ts +116 -0
  27. package/dist/memory/index.d.ts +14 -0
  28. package/dist/memory/memory-orbital.d.ts +66 -0
  29. package/dist/memory/types.d.ts +143 -0
  30. package/dist/metrics.d.ts +77 -0
  31. package/dist/multi-user.d.ts +155 -0
  32. package/dist/observability/index.d.ts +14 -0
  33. package/dist/observability/langsmith-integration.d.ts +203 -0
  34. package/dist/observability.d.ts +196 -0
  35. package/dist/orbitals/archive/sanitize.d.ts +24 -0
  36. package/dist/orbitals/batch/batch-generator.d.ts +41 -0
  37. package/dist/orbitals/batch/concurrency.d.ts +54 -0
  38. package/dist/orbitals/batch/index.d.ts +14 -0
  39. package/dist/orbitals/batch/prompt-assembler.d.ts +92 -0
  40. package/dist/orbitals/batch/types.d.ts +103 -0
  41. package/dist/orbitals/cache/index.d.ts +11 -0
  42. package/dist/orbitals/cache/orbital-fingerprint.d.ts +37 -0
  43. package/dist/orbitals/cache/prompt-assembler.d.ts +65 -0
  44. package/dist/orbitals/cache/structural-templates.d.ts +33 -0
  45. package/dist/orbitals/combiner/index.d.ts +102 -0
  46. package/dist/orbitals/domain-language/index.d.ts +9 -0
  47. package/dist/orbitals/domain-language/prompts/index.d.ts +11 -0
  48. package/dist/orbitals/domain-language/prompts/odl-examples.d.ts +8 -0
  49. package/dist/orbitals/domain-language/prompts/odl-patterns.d.ts +8 -0
  50. package/dist/orbitals/domain-language/prompts/odl-syntax.d.ts +8 -0
  51. package/dist/orbitals/domain-language/prompts/odl-to-schema.d.ts +8 -0
  52. package/dist/orbitals/generation/index.d.ts +10 -0
  53. package/dist/orbitals/generation/orbital-generator.d.ts +120 -0
  54. package/dist/orbitals/shared/constants.d.ts +65 -0
  55. package/dist/orbitals/shared/index.d.ts +11 -0
  56. package/dist/orbitals/shared/types.d.ts +187 -0
  57. package/dist/orbitals/shared/utils.d.ts +97 -0
  58. package/dist/orchestration/complexity-classifier.d.ts +38 -0
  59. package/dist/orchestration/fixing-orchestrator.d.ts +53 -0
  60. package/dist/orchestration/index.d.ts +31 -0
  61. package/dist/orchestration/provider-router.d.ts +45 -0
  62. package/dist/{firestore-checkpointer-CkNKXoun.d.ts → persistence/firestore-checkpointer.d.ts} +13 -58
  63. package/dist/persistence/firestore-session-store.d.ts +75 -0
  64. package/dist/persistence/firestore-store.d.ts +86 -0
  65. package/dist/persistence/index.d.ts +7 -198
  66. package/dist/persistence/memory-backend.d.ts +33 -0
  67. package/dist/persistence/types.d.ts +40 -0
  68. package/dist/security/audit-log.d.ts +44 -0
  69. package/dist/state-sync.d.ts +171 -0
  70. package/dist/subagents.d.ts +38 -0
  71. package/dist/tools/combine-schemas.d.ts +154 -0
  72. package/dist/tools/composition.d.ts +119 -0
  73. package/dist/{orbital-subagent-BdFuf77p.d.ts → tools/domain-orbital.d.ts} +22 -461
  74. package/dist/tools/execute.d.ts +38 -0
  75. package/dist/tools/finish-task.d.ts +56 -0
  76. package/dist/tools/generate-schema.d.ts +53 -0
  77. package/dist/tools/github.d.ts +297 -0
  78. package/dist/tools/index.d.ts +1318 -8
  79. package/dist/tools/orbital-batch-subagent.d.ts +85 -0
  80. package/dist/tools/orbital-subagent.d.ts +454 -0
  81. package/dist/tools/orchestrated-fixing.d.ts +74 -0
  82. package/dist/tools/orchestrated-generation.d.ts +75 -0
  83. package/dist/tools/sandbox-executor.d.ts +31 -0
  84. package/dist/tools/schema-chunking.d.ts +117 -0
  85. package/dist/tools/trait-subagent.d.ts +179 -0
  86. package/dist/tools/validate-schema.d.ts +17 -0
  87. package/dist/types.d.ts +14 -17
  88. package/dist/utils/safety/capability-token.d.ts +50 -0
  89. package/dist/utils/safety/circuit-breaker.d.ts +71 -0
  90. package/dist/utils/safety/index.d.ts +19 -0
  91. package/dist/utils/safety/rate-limiter.d.ts +39 -0
  92. package/dist/utils/safety/threshold-auth.d.ts +70 -0
  93. package/dist/workspace/git-client.d.ts +51 -0
  94. package/dist/workspace/index.d.ts +29 -346
  95. package/dist/workspace/index.js +39 -0
  96. package/dist/workspace/index.js.map +1 -1
  97. package/dist/workspace/memory-files.d.ts +31 -0
  98. package/dist/workspace/sink-manager.d.ts +26 -0
  99. package/dist/workspace/sinks/firestore-sink.d.ts +41 -0
  100. package/dist/workspace/sinks/git-sink.d.ts +47 -0
  101. package/dist/workspace/sinks/index.d.ts +9 -0
  102. package/dist/workspace/templates.d.ts +32 -0
  103. package/dist/workspace/types.d.ts +86 -0
  104. package/dist/workspace/workspace-manager.d.ts +57 -0
  105. package/package.json +12 -10
  106. package/dist/index-DW3F-Ihx.d.ts +0 -2501
  107. package/dist/index-DZn69no8.d.ts +0 -1014
@@ -1,47 +1,3 @@
1
- import { BaseCheckpointSaver, CheckpointTuple, CheckpointListOptions, Checkpoint, CheckpointMetadata, PendingWrite } from '@langchain/langgraph-checkpoint';
2
- import { RunnableConfig } from '@langchain/core/runnables';
3
-
4
- /**
5
- * Persistence Types
6
- *
7
- * Interfaces for pluggable persistence backends.
8
- * Consumers provide implementations (memory, Firestore, etc.)
9
- */
10
- /**
11
- * Session metadata stored by any backend.
12
- */
13
- interface SessionMetadata {
14
- skill: string;
15
- workDir: string;
16
- createdAt: number;
17
- lastActivityAt: number;
18
- /** If true, auto-approve all future interrupts without user interaction */
19
- approveAll?: boolean;
20
- }
21
- /**
22
- * Session record with thread ID (for listing).
23
- */
24
- interface SessionRecord extends SessionMetadata {
25
- threadId: string;
26
- }
27
- /**
28
- * Persistence mode for agent sessions.
29
- * - 'memory': In-memory storage (default, lost on restart)
30
- * - 'firestore': Firestore-backed storage (persistent)
31
- */
32
- type PersistenceMode = 'memory' | 'firestore';
33
- /**
34
- * Session data for Firestore storage.
35
- */
36
- interface Session {
37
- threadId: string;
38
- skill: string;
39
- workDir: string;
40
- userId?: string;
41
- createdAt: Date;
42
- lastActivityAt: Date;
43
- }
44
-
45
1
  /**
46
2
  * Firestore Checkpointer for LangGraph
47
3
  *
@@ -52,50 +8,51 @@ interface Session {
52
8
  * The Firestore `db` instance must be injected via constructor options.
53
9
  * This keeps the @almadar/agent package free of firebase-admin as a direct dependency.
54
10
  */
55
-
11
+ import { BaseCheckpointSaver, type Checkpoint, type CheckpointTuple, type CheckpointMetadata, type CheckpointListOptions, type PendingWrite } from '@langchain/langgraph-checkpoint';
12
+ import type { RunnableConfig } from '@langchain/core/runnables';
56
13
  /**
57
14
  * Minimal Firestore interface to avoid importing firebase-admin.
58
15
  * Consumers pass their own Firestore instance.
59
16
  */
60
- interface FirestoreDb {
17
+ export interface FirestoreDb {
61
18
  collection(path: string): FirestoreCollectionRef;
62
19
  batch(): FirestoreBatch;
63
20
  }
64
- interface FirestoreCollectionRef {
21
+ export interface FirestoreCollectionRef {
65
22
  doc(id: string): FirestoreDocRef;
66
23
  where(field: string, op: string, value: unknown): FirestoreQuery;
67
24
  orderBy(field: string, direction?: string): FirestoreQuery;
68
25
  limit(n: number): FirestoreQuery;
69
26
  }
70
- interface FirestoreDocRef {
27
+ export interface FirestoreDocRef {
71
28
  set(data: unknown): Promise<unknown>;
72
29
  get(): Promise<FirestoreDocSnapshot>;
73
30
  update(data: unknown): Promise<unknown>;
74
31
  delete(): Promise<unknown>;
75
32
  readonly ref: unknown;
76
33
  }
77
- interface FirestoreDocSnapshot {
34
+ export interface FirestoreDocSnapshot {
78
35
  exists: boolean;
79
36
  data(): Record<string, unknown> | undefined;
80
37
  readonly ref: unknown;
81
38
  }
82
- interface FirestoreQuery {
39
+ export interface FirestoreQuery {
83
40
  where(field: string, op: string, value: unknown): FirestoreQuery;
84
41
  orderBy(field: string, direction?: string): FirestoreQuery;
85
42
  limit(n: number): FirestoreQuery;
86
43
  startAfter(doc: unknown): FirestoreQuery;
87
44
  get(): Promise<FirestoreQuerySnapshot>;
88
45
  }
89
- interface FirestoreQuerySnapshot {
46
+ export interface FirestoreQuerySnapshot {
90
47
  empty: boolean;
91
48
  docs: FirestoreQueryDocSnapshot[];
92
49
  size: number;
93
50
  }
94
- interface FirestoreQueryDocSnapshot {
51
+ export interface FirestoreQueryDocSnapshot {
95
52
  data(): Record<string, unknown>;
96
53
  readonly ref: unknown;
97
54
  }
98
- interface FirestoreBatch {
55
+ export interface FirestoreBatch {
99
56
  set(ref: unknown, data: unknown): void;
100
57
  delete(ref: unknown): void;
101
58
  commit(): Promise<unknown>;
@@ -103,13 +60,13 @@ interface FirestoreBatch {
103
60
  /**
104
61
  * Firestore Timestamp-like interface.
105
62
  */
106
- interface FirestoreTimestamp {
63
+ export interface FirestoreTimestamp {
107
64
  toDate(): Date;
108
65
  }
109
66
  /**
110
67
  * Options for FirestoreCheckpointer.
111
68
  */
112
- interface FirestoreCheckpointerOptions {
69
+ export interface FirestoreCheckpointerOptions {
113
70
  /**
114
71
  * Firestore instance. Required — injected by consumer.
115
72
  */
@@ -146,7 +103,7 @@ interface FirestoreCheckpointerOptions {
146
103
  * });
147
104
  * ```
148
105
  */
149
- declare class FirestoreCheckpointer extends BaseCheckpointSaver {
106
+ export declare class FirestoreCheckpointer extends BaseCheckpointSaver {
150
107
  private db;
151
108
  private checkpointsCollection;
152
109
  private writesCollection;
@@ -180,5 +137,3 @@ declare class FirestoreCheckpointer extends BaseCheckpointSaver {
180
137
  */
181
138
  deleteThread(threadId: string): Promise<void>;
182
139
  }
183
-
184
- export { FirestoreCheckpointer as F, type PersistenceMode as P, type SessionMetadata as S, type FirestoreCheckpointerOptions as a, type FirestoreDb as b, type FirestoreTimestamp as c, type Session as d, type SessionRecord as e };
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Firestore Session Store for DeepAgent
3
+ *
4
+ * Provides persistent session storage for skill-based agents.
5
+ * Sessions are stored in Firestore and persist across server restarts.
6
+ *
7
+ * IMPORTANT: This module does NOT import firebase-admin directly.
8
+ * The Firestore `db` instance must be injected via constructor options.
9
+ */
10
+ import type { Session } from './types.js';
11
+ import type { FirestoreDb } from './firestore-checkpointer.js';
12
+ /**
13
+ * Options for FirestoreSessionStore.
14
+ */
15
+ export interface FirestoreSessionStoreOptions {
16
+ /**
17
+ * Firestore instance. Required — injected by consumer.
18
+ */
19
+ db: FirestoreDb;
20
+ /**
21
+ * Collection name for sessions.
22
+ * @default 'agent_sessions'
23
+ */
24
+ collection?: string;
25
+ }
26
+ /**
27
+ * Firestore-backed session store for skill agents.
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const sessionStore = new FirestoreSessionStore({ db: getFirestore() });
32
+ *
33
+ * await sessionStore.save({
34
+ * threadId: 'abc-123',
35
+ * skill: 'kflow-generating-m',
36
+ * workDir: '/tmp/workspace',
37
+ * createdAt: new Date(),
38
+ * lastActivityAt: new Date(),
39
+ * });
40
+ *
41
+ * const session = await sessionStore.get('abc-123');
42
+ * ```
43
+ */
44
+ export declare class FirestoreSessionStore {
45
+ private db;
46
+ private collection;
47
+ constructor(options: FirestoreSessionStoreOptions);
48
+ /**
49
+ * Save a session.
50
+ */
51
+ save(session: Session): Promise<void>;
52
+ /**
53
+ * Get a session by thread ID.
54
+ */
55
+ get(threadId: string): Promise<Session | null>;
56
+ /**
57
+ * Update session's last activity timestamp.
58
+ */
59
+ touch(threadId: string): Promise<void>;
60
+ /**
61
+ * Delete a session.
62
+ */
63
+ delete(threadId: string): Promise<void>;
64
+ /**
65
+ * List sessions, optionally filtered by user ID.
66
+ */
67
+ list(options?: {
68
+ userId?: string;
69
+ limit?: number;
70
+ }): Promise<Session[]>;
71
+ /**
72
+ * Delete expired sessions (older than specified hours).
73
+ */
74
+ deleteExpired(maxAgeHours?: number): Promise<number>;
75
+ }
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Firestore Store for LangGraph
3
+ *
4
+ * Custom implementation of BaseStore using Firebase Firestore.
5
+ * This provides persistent key-value storage for agent memories.
6
+ *
7
+ * IMPORTANT: This module does NOT import firebase-admin directly.
8
+ * The Firestore `db` instance must be injected via constructor options.
9
+ */
10
+ import { BaseStore, type Operation, type OperationResults } from '@langchain/langgraph-checkpoint';
11
+ import type { FirestoreDb } from './firestore-checkpointer.js';
12
+ /**
13
+ * Options for FirestoreStore.
14
+ */
15
+ export interface FirestoreStoreOptions {
16
+ /**
17
+ * Firestore instance. Required — injected by consumer.
18
+ */
19
+ db: FirestoreDb;
20
+ /**
21
+ * Collection name for store items.
22
+ * @default 'agent_memories'
23
+ */
24
+ collection?: string;
25
+ }
26
+ /**
27
+ * Firestore-backed store for LangGraph agent memories.
28
+ *
29
+ * Provides persistent key-value storage that can be shared across threads.
30
+ * Items are organized by hierarchical namespaces.
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * import { getFirestore } from 'firebase-admin/firestore';
35
+ *
36
+ * const store = new FirestoreStore({
37
+ * db: getFirestore(),
38
+ * collection: 'agent_memories',
39
+ * });
40
+ *
41
+ * // Store a memory
42
+ * await store.put(['agent', 'patterns'], 'schema-best-practices', {
43
+ * content: 'Always validate schemas before saving',
44
+ * });
45
+ *
46
+ * // Retrieve a memory
47
+ * const item = await store.get(['agent', 'patterns'], 'schema-best-practices');
48
+ * ```
49
+ */
50
+ export declare class FirestoreStore extends BaseStore {
51
+ private db;
52
+ private collection;
53
+ constructor(options: FirestoreStoreOptions);
54
+ /**
55
+ * Create document ID from namespace and key.
56
+ */
57
+ private makeDocId;
58
+ /**
59
+ * Create namespace key for querying.
60
+ */
61
+ private makeNamespaceKey;
62
+ /**
63
+ * Execute multiple operations in a batch.
64
+ */
65
+ batch<Op extends Operation[]>(operations: Op): Promise<OperationResults<Op>>;
66
+ /**
67
+ * Get an item by namespace and key.
68
+ */
69
+ private getItem;
70
+ /**
71
+ * Put an item.
72
+ */
73
+ private putItem;
74
+ /**
75
+ * Delete an item.
76
+ */
77
+ private deleteItem;
78
+ /**
79
+ * Search for items.
80
+ */
81
+ private searchItems;
82
+ /**
83
+ * List namespaces.
84
+ */
85
+ private listNamespacesItems;
86
+ }
@@ -1,201 +1,10 @@
1
- import { S as SessionMetadata, e as SessionRecord, b as FirestoreDb, d as Session } from '../firestore-checkpointer-CkNKXoun.js';
2
- export { F as FirestoreCheckpointer, a as FirestoreCheckpointerOptions, c as FirestoreTimestamp, P as PersistenceMode } from '../firestore-checkpointer-CkNKXoun.js';
3
- import { BaseStore, Operation, OperationResults } from '@langchain/langgraph-checkpoint';
4
- import '@langchain/core/runnables';
5
-
6
1
  /**
7
- * In-Memory Persistence Backend
2
+ * Persistence Module
8
3
  *
9
- * Provides in-memory session metadata storage for development.
10
- * Data is lost on process restart.
4
+ * Pluggable persistence backends for agent sessions, checkpoints, and memory.
11
5
  */
12
-
13
- /**
14
- * In-memory session metadata store.
15
- */
16
- declare class MemorySessionBackend {
17
- private sessions;
18
- /**
19
- * Store session metadata.
20
- */
21
- store(threadId: string, metadata: SessionMetadata): void;
22
- /**
23
- * Get session metadata.
24
- */
25
- get(threadId: string): SessionMetadata | undefined;
26
- /**
27
- * Delete session metadata.
28
- */
29
- delete(threadId: string): boolean;
30
- /**
31
- * List all sessions.
32
- */
33
- list(): SessionRecord[];
34
- /**
35
- * Check if a session exists.
36
- */
37
- has(threadId: string): boolean;
38
- }
39
-
40
- /**
41
- * Firestore Session Store for DeepAgent
42
- *
43
- * Provides persistent session storage for skill-based agents.
44
- * Sessions are stored in Firestore and persist across server restarts.
45
- *
46
- * IMPORTANT: This module does NOT import firebase-admin directly.
47
- * The Firestore `db` instance must be injected via constructor options.
48
- */
49
-
50
- /**
51
- * Options for FirestoreSessionStore.
52
- */
53
- interface FirestoreSessionStoreOptions {
54
- /**
55
- * Firestore instance. Required — injected by consumer.
56
- */
57
- db: FirestoreDb;
58
- /**
59
- * Collection name for sessions.
60
- * @default 'agent_sessions'
61
- */
62
- collection?: string;
63
- }
64
- /**
65
- * Firestore-backed session store for skill agents.
66
- *
67
- * @example
68
- * ```typescript
69
- * const sessionStore = new FirestoreSessionStore({ db: getFirestore() });
70
- *
71
- * await sessionStore.save({
72
- * threadId: 'abc-123',
73
- * skill: 'kflow-generating-m',
74
- * workDir: '/tmp/workspace',
75
- * createdAt: new Date(),
76
- * lastActivityAt: new Date(),
77
- * });
78
- *
79
- * const session = await sessionStore.get('abc-123');
80
- * ```
81
- */
82
- declare class FirestoreSessionStore {
83
- private db;
84
- private collection;
85
- constructor(options: FirestoreSessionStoreOptions);
86
- /**
87
- * Save a session.
88
- */
89
- save(session: Session): Promise<void>;
90
- /**
91
- * Get a session by thread ID.
92
- */
93
- get(threadId: string): Promise<Session | null>;
94
- /**
95
- * Update session's last activity timestamp.
96
- */
97
- touch(threadId: string): Promise<void>;
98
- /**
99
- * Delete a session.
100
- */
101
- delete(threadId: string): Promise<void>;
102
- /**
103
- * List sessions, optionally filtered by user ID.
104
- */
105
- list(options?: {
106
- userId?: string;
107
- limit?: number;
108
- }): Promise<Session[]>;
109
- /**
110
- * Delete expired sessions (older than specified hours).
111
- */
112
- deleteExpired(maxAgeHours?: number): Promise<number>;
113
- }
114
-
115
- /**
116
- * Firestore Store for LangGraph
117
- *
118
- * Custom implementation of BaseStore using Firebase Firestore.
119
- * This provides persistent key-value storage for agent memories.
120
- *
121
- * IMPORTANT: This module does NOT import firebase-admin directly.
122
- * The Firestore `db` instance must be injected via constructor options.
123
- */
124
-
125
- /**
126
- * Options for FirestoreStore.
127
- */
128
- interface FirestoreStoreOptions {
129
- /**
130
- * Firestore instance. Required — injected by consumer.
131
- */
132
- db: FirestoreDb;
133
- /**
134
- * Collection name for store items.
135
- * @default 'agent_memories'
136
- */
137
- collection?: string;
138
- }
139
- /**
140
- * Firestore-backed store for LangGraph agent memories.
141
- *
142
- * Provides persistent key-value storage that can be shared across threads.
143
- * Items are organized by hierarchical namespaces.
144
- *
145
- * @example
146
- * ```typescript
147
- * import { getFirestore } from 'firebase-admin/firestore';
148
- *
149
- * const store = new FirestoreStore({
150
- * db: getFirestore(),
151
- * collection: 'agent_memories',
152
- * });
153
- *
154
- * // Store a memory
155
- * await store.put(['agent', 'patterns'], 'schema-best-practices', {
156
- * content: 'Always validate schemas before saving',
157
- * });
158
- *
159
- * // Retrieve a memory
160
- * const item = await store.get(['agent', 'patterns'], 'schema-best-practices');
161
- * ```
162
- */
163
- declare class FirestoreStore extends BaseStore {
164
- private db;
165
- private collection;
166
- constructor(options: FirestoreStoreOptions);
167
- /**
168
- * Create document ID from namespace and key.
169
- */
170
- private makeDocId;
171
- /**
172
- * Create namespace key for querying.
173
- */
174
- private makeNamespaceKey;
175
- /**
176
- * Execute multiple operations in a batch.
177
- */
178
- batch<Op extends Operation[]>(operations: Op): Promise<OperationResults<Op>>;
179
- /**
180
- * Get an item by namespace and key.
181
- */
182
- private getItem;
183
- /**
184
- * Put an item.
185
- */
186
- private putItem;
187
- /**
188
- * Delete an item.
189
- */
190
- private deleteItem;
191
- /**
192
- * Search for items.
193
- */
194
- private searchItems;
195
- /**
196
- * List namespaces.
197
- */
198
- private listNamespacesItems;
199
- }
200
-
201
- export { FirestoreDb, FirestoreSessionStore, type FirestoreSessionStoreOptions, FirestoreStore, type FirestoreStoreOptions, MemorySessionBackend, Session, SessionMetadata, SessionRecord };
6
+ export type { SessionMetadata, SessionRecord, PersistenceMode, Session, } from './types.js';
7
+ export { MemorySessionBackend } from './memory-backend.js';
8
+ export { FirestoreCheckpointer, type FirestoreCheckpointerOptions, type FirestoreDb, type FirestoreTimestamp, } from './firestore-checkpointer.js';
9
+ export { FirestoreSessionStore, type FirestoreSessionStoreOptions, } from './firestore-session-store.js';
10
+ export { FirestoreStore, type FirestoreStoreOptions, } from './firestore-store.js';
@@ -0,0 +1,33 @@
1
+ /**
2
+ * In-Memory Persistence Backend
3
+ *
4
+ * Provides in-memory session metadata storage for development.
5
+ * Data is lost on process restart.
6
+ */
7
+ import type { SessionMetadata, SessionRecord } from './types.js';
8
+ /**
9
+ * In-memory session metadata store.
10
+ */
11
+ export declare class MemorySessionBackend {
12
+ private sessions;
13
+ /**
14
+ * Store session metadata.
15
+ */
16
+ store(threadId: string, metadata: SessionMetadata): void;
17
+ /**
18
+ * Get session metadata.
19
+ */
20
+ get(threadId: string): SessionMetadata | undefined;
21
+ /**
22
+ * Delete session metadata.
23
+ */
24
+ delete(threadId: string): boolean;
25
+ /**
26
+ * List all sessions.
27
+ */
28
+ list(): SessionRecord[];
29
+ /**
30
+ * Check if a session exists.
31
+ */
32
+ has(threadId: string): boolean;
33
+ }
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Persistence Types
3
+ *
4
+ * Interfaces for pluggable persistence backends.
5
+ * Consumers provide implementations (memory, Firestore, etc.)
6
+ */
7
+ /**
8
+ * Session metadata stored by any backend.
9
+ */
10
+ export interface SessionMetadata {
11
+ skill: string;
12
+ workDir: string;
13
+ createdAt: number;
14
+ lastActivityAt: number;
15
+ /** If true, auto-approve all future interrupts without user interaction */
16
+ approveAll?: boolean;
17
+ }
18
+ /**
19
+ * Session record with thread ID (for listing).
20
+ */
21
+ export interface SessionRecord extends SessionMetadata {
22
+ threadId: string;
23
+ }
24
+ /**
25
+ * Persistence mode for agent sessions.
26
+ * - 'memory': In-memory storage (default, lost on restart)
27
+ * - 'firestore': Firestore-backed storage (persistent)
28
+ */
29
+ export type PersistenceMode = 'memory' | 'firestore';
30
+ /**
31
+ * Session data for Firestore storage.
32
+ */
33
+ export interface Session {
34
+ threadId: string;
35
+ skill: string;
36
+ workDir: string;
37
+ userId?: string;
38
+ createdAt: Date;
39
+ lastActivityAt: Date;
40
+ }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * AuditLog — Hash-chained append-only audit ledger.
3
+ *
4
+ * TypeScript port of saezbaldo/ic-agi `ic_agi/audit_log.py`.
5
+ * See: https://github.com/saezbaldo/ic-agi
6
+ *
7
+ * Each entry is cryptographically linked to the previous one via
8
+ * SHA-256 chaining. Any tampering with historical entries will
9
+ * break chain verification.
10
+ */
11
+ export interface AuditEntry {
12
+ /** Zero-based position in the chain. */
13
+ index: number;
14
+ /** Unix epoch seconds — set by append(), never caller-supplied. */
15
+ timestamp: number;
16
+ /** Arbitrary event data. */
17
+ data: Record<string, unknown>;
18
+ /** SHA-256 of the previous entry (or GENESIS_HASH for the first entry). */
19
+ prevHash: string;
20
+ /** SHA-256 of this entry's canonical form. */
21
+ entryHash: string;
22
+ }
23
+ export declare class AuditLog {
24
+ private entries;
25
+ /**
26
+ * Append a new entry to the chain.
27
+ * The timestamp is set here — callers cannot supply it.
28
+ */
29
+ append(data: Record<string, unknown>): AuditEntry;
30
+ /**
31
+ * Verify the integrity of the entire chain.
32
+ * Recomputes every entry hash and checks chain linkage.
33
+ * Returns false immediately on the first mismatch.
34
+ */
35
+ verify(): boolean;
36
+ /** Return entries, optionally filtered by source, event type, or count limit. */
37
+ getEntries(filter?: {
38
+ source?: string;
39
+ event?: string;
40
+ limit?: number;
41
+ }): AuditEntry[];
42
+ getEntry(index: number): AuditEntry | undefined;
43
+ get length(): number;
44
+ }