@kindgi/agents 0.0.0-bootstrap.0 → 0.1.0
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 +201 -0
- package/README.md +131 -2
- package/dist/agent-turn-flow.d.ts +57 -0
- package/dist/agent-turn-flow.d.ts.map +1 -0
- package/dist/agent-turn-flow.js +172 -0
- package/dist/agent-turn-flow.js.map +1 -0
- package/dist/conversation-binding.d.ts +111 -0
- package/dist/conversation-binding.d.ts.map +1 -0
- package/dist/conversation-binding.js +4 -0
- package/dist/conversation-binding.js.map +1 -0
- package/dist/define.d.ts +180 -0
- package/dist/define.d.ts.map +1 -0
- package/dist/define.js +361 -0
- package/dist/define.js.map +1 -0
- package/dist/errors.d.ts +62 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +4 -0
- package/dist/errors.js.map +1 -0
- package/dist/guardrails-gate.d.ts +169 -0
- package/dist/guardrails-gate.d.ts.map +1 -0
- package/dist/guardrails-gate.js +202 -0
- package/dist/guardrails-gate.js.map +1 -0
- package/dist/handlers/budget-check.d.ts +22 -0
- package/dist/handlers/budget-check.d.ts.map +1 -0
- package/dist/handlers/budget-check.js +109 -0
- package/dist/handlers/budget-check.js.map +1 -0
- package/dist/handlers/build-initial-messages.d.ts +17 -0
- package/dist/handlers/build-initial-messages.d.ts.map +1 -0
- package/dist/handlers/build-initial-messages.js +86 -0
- package/dist/handlers/build-initial-messages.js.map +1 -0
- package/dist/handlers/compose-result.d.ts +10 -0
- package/dist/handlers/compose-result.d.ts.map +1 -0
- package/dist/handlers/compose-result.js +79 -0
- package/dist/handlers/compose-result.js.map +1 -0
- package/dist/handlers/constants.d.ts +8 -0
- package/dist/handlers/constants.d.ts.map +1 -0
- package/dist/handlers/constants.js +10 -0
- package/dist/handlers/constants.js.map +1 -0
- package/dist/handlers/context.d.ts +210 -0
- package/dist/handlers/context.d.ts.map +1 -0
- package/dist/handlers/context.js +4 -0
- package/dist/handlers/context.js.map +1 -0
- package/dist/handlers/dispatch-tools.d.ts +15 -0
- package/dist/handlers/dispatch-tools.d.ts.map +1 -0
- package/dist/handlers/dispatch-tools.js +511 -0
- package/dist/handlers/dispatch-tools.js.map +1 -0
- package/dist/handlers/errors.d.ts +133 -0
- package/dist/handlers/errors.d.ts.map +1 -0
- package/dist/handlers/errors.js +134 -0
- package/dist/handlers/errors.js.map +1 -0
- package/dist/handlers/evaluate-guardrails.d.ts +14 -0
- package/dist/handlers/evaluate-guardrails.d.ts.map +1 -0
- package/dist/handlers/evaluate-guardrails.js +128 -0
- package/dist/handlers/evaluate-guardrails.js.map +1 -0
- package/dist/handlers/final-iteration.d.ts +7 -0
- package/dist/handlers/final-iteration.d.ts.map +1 -0
- package/dist/handlers/final-iteration.js +26 -0
- package/dist/handlers/final-iteration.js.map +1 -0
- package/dist/handlers/index.d.ts +5 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +41 -0
- package/dist/handlers/index.js.map +1 -0
- package/dist/handlers/model-call.d.ts +13 -0
- package/dist/handlers/model-call.d.ts.map +1 -0
- package/dist/handlers/model-call.js +136 -0
- package/dist/handlers/model-call.js.map +1 -0
- package/dist/handlers/persist-final-message.d.ts +14 -0
- package/dist/handlers/persist-final-message.d.ts.map +1 -0
- package/dist/handlers/persist-final-message.js +54 -0
- package/dist/handlers/persist-final-message.js.map +1 -0
- package/dist/handlers/persist-provenance.d.ts +12 -0
- package/dist/handlers/persist-provenance.d.ts.map +1 -0
- package/dist/handlers/persist-provenance.js +34 -0
- package/dist/handlers/persist-provenance.js.map +1 -0
- package/dist/handlers/persist-user-message.d.ts +15 -0
- package/dist/handlers/persist-user-message.d.ts.map +1 -0
- package/dist/handlers/persist-user-message.js +59 -0
- package/dist/handlers/persist-user-message.js.map +1 -0
- package/dist/handlers/public-types.d.ts +201 -0
- package/dist/handlers/public-types.d.ts.map +1 -0
- package/dist/handlers/public-types.js +4 -0
- package/dist/handlers/public-types.js.map +1 -0
- package/dist/handlers/rehydrate.d.ts +8 -0
- package/dist/handlers/rehydrate.d.ts.map +1 -0
- package/dist/handlers/rehydrate.js +94 -0
- package/dist/handlers/rehydrate.js.map +1 -0
- package/dist/handlers/render-prompt.d.ts +12 -0
- package/dist/handlers/render-prompt.d.ts.map +1 -0
- package/dist/handlers/render-prompt.js +41 -0
- package/dist/handlers/render-prompt.js.map +1 -0
- package/dist/handlers/resolve-tools.d.ts +10 -0
- package/dist/handlers/resolve-tools.d.ts.map +1 -0
- package/dist/handlers/resolve-tools.js +55 -0
- package/dist/handlers/resolve-tools.js.map +1 -0
- package/dist/handlers/result-shape.d.ts +94 -0
- package/dist/handlers/result-shape.d.ts.map +1 -0
- package/dist/handlers/result-shape.js +19 -0
- package/dist/handlers/result-shape.js.map +1 -0
- package/dist/handlers/run-retrievals.d.ts +10 -0
- package/dist/handlers/run-retrievals.d.ts.map +1 -0
- package/dist/handlers/run-retrievals.js +64 -0
- package/dist/handlers/run-retrievals.js.map +1 -0
- package/dist/handlers/run-snapshot.d.ts +4 -0
- package/dist/handlers/run-snapshot.d.ts.map +1 -0
- package/dist/handlers/run-snapshot.js +26 -0
- package/dist/handlers/run-snapshot.js.map +1 -0
- package/dist/handlers/setup.d.ts +25 -0
- package/dist/handlers/setup.d.ts.map +1 -0
- package/dist/handlers/setup.js +231 -0
- package/dist/handlers/setup.js.map +1 -0
- package/dist/handlers/structured-output.d.ts +38 -0
- package/dist/handlers/structured-output.d.ts.map +1 -0
- package/dist/handlers/structured-output.js +89 -0
- package/dist/handlers/structured-output.js.map +1 -0
- package/dist/handlers/tool-errors.d.ts +56 -0
- package/dist/handlers/tool-errors.d.ts.map +1 -0
- package/dist/handlers/tool-errors.js +73 -0
- package/dist/handlers/tool-errors.js.map +1 -0
- package/dist/handlers/tool-hitl.d.ts +45 -0
- package/dist/handlers/tool-hitl.d.ts.map +1 -0
- package/dist/handlers/tool-hitl.js +81 -0
- package/dist/handlers/tool-hitl.js.map +1 -0
- package/dist/handlers/turn-environment.d.ts +26 -0
- package/dist/handlers/turn-environment.d.ts.map +1 -0
- package/dist/handlers/turn-environment.js +154 -0
- package/dist/handlers/turn-environment.js.map +1 -0
- package/dist/hitl-policy.d.ts +45 -0
- package/dist/hitl-policy.d.ts.map +1 -0
- package/dist/hitl-policy.js +74 -0
- package/dist/hitl-policy.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/invoke.d.ts +36 -0
- package/dist/invoke.d.ts.map +1 -0
- package/dist/invoke.js +228 -0
- package/dist/invoke.js.map +1 -0
- package/dist/migrations-dir.d.ts +11 -0
- package/dist/migrations-dir.d.ts.map +1 -0
- package/dist/migrations-dir.js +14 -0
- package/dist/migrations-dir.js.map +1 -0
- package/dist/project-run-result.d.ts +23 -0
- package/dist/project-run-result.d.ts.map +1 -0
- package/dist/project-run-result.js +116 -0
- package/dist/project-run-result.js.map +1 -0
- package/dist/prompt.d.ts +83 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +119 -0
- package/dist/prompt.js.map +1 -0
- package/dist/provenance-emit.d.ts +44 -0
- package/dist/provenance-emit.d.ts.map +1 -0
- package/dist/provenance-emit.js +51 -0
- package/dist/provenance-emit.js.map +1 -0
- package/dist/registry.d.ts +38 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +125 -0
- package/dist/registry.js.map +1 -0
- package/dist/retrieval.d.ts +47 -0
- package/dist/retrieval.d.ts.map +1 -0
- package/dist/retrieval.js +155 -0
- package/dist/retrieval.js.map +1 -0
- package/dist/run-snapshot-binding.d.ts +77 -0
- package/dist/run-snapshot-binding.d.ts.map +1 -0
- package/dist/run-snapshot-binding.js +4 -0
- package/dist/run-snapshot-binding.js.map +1 -0
- package/dist/schema.d.ts +497 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +133 -0
- package/dist/schema.js.map +1 -0
- package/dist/streaming.d.ts +118 -0
- package/dist/streaming.d.ts.map +1 -0
- package/dist/streaming.js +17 -0
- package/dist/streaming.js.map +1 -0
- package/dist/tenant-policy.d.ts +16 -0
- package/dist/tenant-policy.d.ts.map +1 -0
- package/dist/tenant-policy.js +77 -0
- package/dist/tenant-policy.js.map +1 -0
- package/dist/types.d.ts +435 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/versioning.d.ts +29 -0
- package/dist/versioning.d.ts.map +1 -0
- package/dist/versioning.js +58 -0
- package/dist/versioning.js.map +1 -0
- package/migrations/0000_sparkling_talkback.sql +18 -0
- package/migrations/0001_tired_warhawk.sql +16 -0
- package/migrations/0002_violet_ezekiel.sql +2 -0
- package/migrations/meta/0000_snapshot.json +172 -0
- package/migrations/meta/0001_snapshot.json +275 -0
- package/migrations/meta/0002_snapshot.json +287 -0
- package/migrations/meta/_journal.json +27 -0
- package/package.json +76 -4
- package/src/agent-turn-flow.ts +183 -0
- package/src/conversation-binding.ts +147 -0
- package/src/define.ts +572 -0
- package/src/errors.ts +80 -0
- package/src/guardrails-gate.ts +342 -0
- package/src/handlers/budget-check.ts +143 -0
- package/src/handlers/build-initial-messages.ts +103 -0
- package/src/handlers/compose-result.ts +90 -0
- package/src/handlers/constants.ts +10 -0
- package/src/handlers/context.ts +226 -0
- package/src/handlers/dispatch-tools.ts +633 -0
- package/src/handlers/errors.ts +282 -0
- package/src/handlers/evaluate-guardrails.ts +153 -0
- package/src/handlers/final-iteration.ts +30 -0
- package/src/handlers/index.ts +63 -0
- package/src/handlers/model-call.ts +151 -0
- package/src/handlers/persist-final-message.ts +67 -0
- package/src/handlers/persist-provenance.ts +39 -0
- package/src/handlers/persist-user-message.ts +70 -0
- package/src/handlers/public-types.ts +209 -0
- package/src/handlers/rehydrate.ts +161 -0
- package/src/handlers/render-prompt.ts +46 -0
- package/src/handlers/resolve-tools.ts +68 -0
- package/src/handlers/result-shape.ts +113 -0
- package/src/handlers/run-retrievals.ts +77 -0
- package/src/handlers/run-snapshot.ts +44 -0
- package/src/handlers/setup.ts +269 -0
- package/src/handlers/structured-output.ts +117 -0
- package/src/handlers/tool-errors.ts +122 -0
- package/src/handlers/tool-hitl.ts +126 -0
- package/src/handlers/turn-environment.ts +191 -0
- package/src/hitl-policy.ts +128 -0
- package/src/index.ts +154 -0
- package/src/invoke.ts +299 -0
- package/src/migrations-dir.ts +17 -0
- package/src/project-run-result.ts +131 -0
- package/src/prompt.ts +185 -0
- package/src/provenance-emit.ts +100 -0
- package/src/registry.ts +164 -0
- package/src/retrieval.ts +219 -0
- package/src/run-snapshot-binding.ts +87 -0
- package/src/schema.ts +154 -0
- package/src/streaming.ts +153 -0
- package/src/tenant-policy.ts +78 -0
- package/src/types.ts +453 -0
- package/src/versioning.ts +77 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
|
|
4
|
+
import type { RunBinding } from '@kindgi/runtime';
|
|
5
|
+
import type { Result, Semver, TenantId } from '@kindgi/types';
|
|
6
|
+
|
|
7
|
+
import type { AgentError } from './errors.js';
|
|
8
|
+
import type {
|
|
9
|
+
AgentId,
|
|
10
|
+
Conversation,
|
|
11
|
+
ConversationId,
|
|
12
|
+
ConversationMessage,
|
|
13
|
+
MessageRole,
|
|
14
|
+
} from './types.js';
|
|
15
|
+
|
|
16
|
+
// ============ Input shapes ============
|
|
17
|
+
|
|
18
|
+
export interface OpenConversationInput {
|
|
19
|
+
readonly tenantId: TenantId;
|
|
20
|
+
readonly agentId: AgentId;
|
|
21
|
+
readonly agentVersion: Semver;
|
|
22
|
+
readonly title: string;
|
|
23
|
+
readonly participantId?: string;
|
|
24
|
+
readonly scope: Readonly<Record<string, unknown>>;
|
|
25
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface ListConversationsInput {
|
|
29
|
+
readonly tenantId: TenantId;
|
|
30
|
+
readonly agentId?: AgentId;
|
|
31
|
+
readonly participantId?: string;
|
|
32
|
+
/** If true, only conversations without a `closedAt` are returned. Default false. */
|
|
33
|
+
readonly openOnly?: boolean;
|
|
34
|
+
readonly limit?: number;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface AppendMessageInput {
|
|
38
|
+
readonly tenantId: TenantId;
|
|
39
|
+
readonly conversationId: ConversationId;
|
|
40
|
+
readonly role: MessageRole;
|
|
41
|
+
readonly content: string | Readonly<Record<string, unknown>>;
|
|
42
|
+
readonly actor?: string;
|
|
43
|
+
readonly toolCall?: { readonly toolId: string; readonly invocationId: string };
|
|
44
|
+
/**
|
|
45
|
+
* When true, this message is a mid-turn assistant emission (e.g. the
|
|
46
|
+
* assistant message that contains tool calls before the final
|
|
47
|
+
* response). `turnCount` is NOT incremented for these — one turn is
|
|
48
|
+
* one user↔agent exchange, not one message. Default false; the final
|
|
49
|
+
* assistant response for a turn omits this flag (counts as a turn).
|
|
50
|
+
*/
|
|
51
|
+
readonly isIntermediate?: boolean;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export interface ReadMessagesInput {
|
|
55
|
+
readonly tenantId: TenantId;
|
|
56
|
+
readonly conversationId: ConversationId;
|
|
57
|
+
readonly sinceSequence?: number;
|
|
58
|
+
readonly limit?: number;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Keyset marker used by `listConversationsPage`. When present, only
|
|
63
|
+
* rows strictly before this marker (by `openedAt` desc, then `id`
|
|
64
|
+
* desc) are returned. The api route encodes / decodes this to an
|
|
65
|
+
* opaque wire cursor.
|
|
66
|
+
*/
|
|
67
|
+
export interface ConversationPageCursor {
|
|
68
|
+
/** ISO 8601 `openedAt` timestamp of the last row from the previous page. */
|
|
69
|
+
readonly openedAt: string;
|
|
70
|
+
readonly id: ConversationId;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export interface ListConversationsPageInput {
|
|
74
|
+
readonly tenantId: TenantId;
|
|
75
|
+
readonly agentId?: AgentId;
|
|
76
|
+
/** When set, filter to open (no closedAt) or closed (closedAt set) rows only. */
|
|
77
|
+
readonly status?: 'open' | 'closed';
|
|
78
|
+
/** Keyset for the next page — see `ConversationPageCursor`. */
|
|
79
|
+
readonly before?: ConversationPageCursor;
|
|
80
|
+
/**
|
|
81
|
+
* Row cap PER PAGE. Impls fetch `limit + 1` internally to compute
|
|
82
|
+
* `hasMore` without a second query.
|
|
83
|
+
*/
|
|
84
|
+
readonly limit: number;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export interface ConversationPage {
|
|
88
|
+
readonly data: readonly Conversation[];
|
|
89
|
+
readonly hasMore: boolean;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* `ConversationBinding` — the public seam between @kindgi/agents and
|
|
94
|
+
* whatever conversation-store implementation a deployment plugs in
|
|
95
|
+
* (the Kindgi runtime ships a Postgres-backed one; alternatives possible).
|
|
96
|
+
*
|
|
97
|
+
* Every method is tenant-scoped: RLS (or the moral equivalent for
|
|
98
|
+
* non-Postgres impls) is expected to be enforced inside the binding.
|
|
99
|
+
* Callers pass the tenant on every method — the binding does not
|
|
100
|
+
* carry request-scoped identity.
|
|
101
|
+
*
|
|
102
|
+
* `closeConversation` accepts an optional `RunBinding` so the impl can
|
|
103
|
+
* cascade-cancel pending waitpoints owned by runs in the closing
|
|
104
|
+
* conversation. Impls without access to the run lifecycle skip the
|
|
105
|
+
* cascade.
|
|
106
|
+
*
|
|
107
|
+
* `appendMessage` / `readMessages` route message content through the
|
|
108
|
+
* memory subsystem — impls capture a `MemoryQueryBinding` at
|
|
109
|
+
* construction and expose it here transparently.
|
|
110
|
+
*/
|
|
111
|
+
export interface ConversationBinding {
|
|
112
|
+
openConversation(input: OpenConversationInput): Promise<Result<Conversation, AgentError>>;
|
|
113
|
+
|
|
114
|
+
getConversation(
|
|
115
|
+
tenantId: TenantId,
|
|
116
|
+
id: ConversationId,
|
|
117
|
+
): Promise<Result<Conversation, AgentError>>;
|
|
118
|
+
|
|
119
|
+
listConversations(
|
|
120
|
+
input: ListConversationsInput,
|
|
121
|
+
): Promise<Result<readonly Conversation[], AgentError>>;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Cursor-paginated + keyset-ordered variant of `listConversations`
|
|
125
|
+
* for the HTTP surface. Sort: `openedAt DESC, id DESC` (chronological
|
|
126
|
+
* — most-recently-opened first, id disambiguating). Fills the
|
|
127
|
+
* `hasMore` marker inline. Filters: `agentId`, `status` (`open` /
|
|
128
|
+
* `closed`), `before` keyset.
|
|
129
|
+
*/
|
|
130
|
+
listConversationsPage(
|
|
131
|
+
input: ListConversationsPageInput,
|
|
132
|
+
): Promise<Result<ConversationPage, AgentError>>;
|
|
133
|
+
|
|
134
|
+
closeConversation(
|
|
135
|
+
tenantId: TenantId,
|
|
136
|
+
id: ConversationId,
|
|
137
|
+
runBinding?: RunBinding,
|
|
138
|
+
): Promise<Result<Conversation, AgentError>>;
|
|
139
|
+
|
|
140
|
+
deleteConversation(tenantId: TenantId, id: ConversationId): Promise<Result<void, AgentError>>;
|
|
141
|
+
|
|
142
|
+
appendMessage(input: AppendMessageInput): Promise<Result<ConversationMessage, AgentError>>;
|
|
143
|
+
|
|
144
|
+
readMessages(
|
|
145
|
+
input: ReadMessagesInput,
|
|
146
|
+
): Promise<Result<readonly ConversationMessage[], AgentError>>;
|
|
147
|
+
}
|