@zackbart/connecta 0.25.0 → 0.26.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/AGENTS.md +6 -5
- package/CHANGELOG.md +271 -0
- package/README.md +32 -15
- package/SECURITY.md +6 -5
- package/bin/connecta.mjs +5 -1
- package/dist/activity.d.ts +10 -3
- package/dist/activity.js +10 -1
- package/dist/artifacts/connector.d.ts +55 -0
- package/dist/artifacts/connector.js +724 -0
- package/dist/artifacts/document.js +76 -0
- package/dist/artifacts/guide.js +140 -0
- package/dist/artifacts/html-scan.js +329 -0
- package/dist/artifacts/json.js +68 -0
- package/dist/artifacts/kv-store.d.ts +20 -0
- package/dist/artifacts/kv-store.js +140 -0
- package/dist/artifacts/markdown.js +449 -0
- package/dist/artifacts/module.d.ts +37 -0
- package/dist/artifacts/module.js +60 -0
- package/dist/artifacts/operations.d.ts +195 -0
- package/dist/artifacts/operations.js +944 -0
- package/dist/artifacts/refresh.d.ts +53 -0
- package/dist/artifacts/refresh.js +235 -0
- package/dist/artifacts/routes.js +194 -0
- package/dist/artifacts/types.d.ts +214 -0
- package/dist/artifacts/types.js +22 -0
- package/dist/artifacts/validate.d.ts +62 -0
- package/dist/artifacts/validate.js +652 -0
- package/dist/artifacts.d.ts +6 -0
- package/dist/artifacts.js +9 -0
- package/dist/catalog-service.js +39 -29
- package/dist/catalog.js +42 -8
- package/dist/connector-access.d.ts +18 -4
- package/dist/connector-access.js +65 -20
- package/dist/connector-caller.d.ts +8 -0
- package/dist/connector-caller.js +19 -0
- package/dist/connectors/remote-mcp.js +16 -2
- package/dist/errors.d.ts +16 -1
- package/dist/errors.js +28 -0
- package/dist/execute.js +427 -70
- package/dist/executor-admission.d.ts +11 -1
- package/dist/executor-admission.js +79 -14
- package/dist/executors/quickjs.js +4 -2
- package/dist/index.d.ts +62 -6
- package/dist/index.js +230 -6
- package/dist/invocation.js +56 -10
- package/dist/meta-tools.js +7 -2
- package/dist/module-contracts.d.ts +21 -1
- package/dist/operator-ui/generated.js +2 -2
- package/dist/operator-ui/model.d.ts +62 -5
- package/dist/operator-ui/view.js +94 -5
- package/dist/program-source.js +116 -0
- package/dist/registry.d.ts +42 -6
- package/dist/registry.js +148 -47
- package/dist/resumable.js +1291 -0
- package/dist/routes/activity.js +6 -69
- package/dist/routes/actor-labels.js +114 -0
- package/dist/routes/credentials.js +27 -5
- package/dist/routes/mcp.js +116 -59
- package/dist/routes/oauth-management.js +22 -9
- package/dist/routes/operator.js +1 -0
- package/dist/routes/shared.d.ts +23 -1
- package/dist/routes/shared.js +20 -2
- package/dist/routes/ui-data.js +2 -1
- package/dist/routes/ui.js +13 -4
- package/dist/run-journal.js +347 -0
- package/dist/runtime/shared-read.js +106 -0
- package/dist/server.js +26 -0
- package/dist/skills.js +27 -8
- package/dist/timeout.js +26 -0
- package/dist/tool-safety.d.ts +35 -0
- package/dist/tool-safety.js +31 -0
- package/dist/types.d.ts +18 -0
- package/dist/ui.d.ts +12 -5
- package/dist/ui.js +32 -6
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/documentation/architecture.md +196 -19
- package/documentation/auth.md +83 -2
- package/documentation/code-mode.md +221 -48
- package/documentation/meta-tools.md +44 -25
- package/ethos.md +12 -10
- package/examples/worker/AGENTS.md +6 -0
- package/examples/worker/README.md +174 -10
- package/examples/worker/src/d1-activity-row.ts +14 -2
- package/examples/worker/src/d1-activity.ts +4 -2
- package/examples/worker/src/index.ts +36 -1
- package/examples/worker/src/r2-artifact-blobs.ts +29 -0
- package/examples/worker/wrangler.jsonc +5 -1
- package/package.json +6 -2
- package/templates/node/AGENTS.md +9 -2
- package/templates/node/README.md +31 -3
- package/templates/node/package.json +1 -1
- package/templates/node/src/index.ts +27 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { type CheckContext } from "./validate.js";
|
|
2
|
+
import type { ArtifactActor, ArtifactHeadRecord, ArtifactIssue, ArtifactKind, ArtifactStore, ArtifactValidation, ArtifactVersionRecord, ArtifactRefreshSchedule, ArtifactRunRecord } from "./types.js";
|
|
3
|
+
type ArtifactFailureCode = "conflict" | "invalid_args" | "not_found" | "unavailable";
|
|
4
|
+
export interface ArtifactFailure {
|
|
5
|
+
ok: false;
|
|
6
|
+
code: ArtifactFailureCode;
|
|
7
|
+
message: string;
|
|
8
|
+
/** On a conflict: where each stream stands now. */
|
|
9
|
+
current?: Record<string, number>;
|
|
10
|
+
/** On invalid content: what validation found. */
|
|
11
|
+
validation?: ArtifactValidation;
|
|
12
|
+
}
|
|
13
|
+
type Result<T> = ({
|
|
14
|
+
ok: true;
|
|
15
|
+
} & T) | ArtifactFailure;
|
|
16
|
+
/**
|
|
17
|
+
* A deployment's render check, bound to one call: it gets the page as the
|
|
18
|
+
* write would leave it — the prospective head, its source, and every live
|
|
19
|
+
* document's stored JSON — and answers with warnings or a failure.
|
|
20
|
+
*/
|
|
21
|
+
export type RenderPage = (page: {
|
|
22
|
+
id: string;
|
|
23
|
+
head: ArtifactHeadRecord;
|
|
24
|
+
source: string;
|
|
25
|
+
data: Record<string, string>;
|
|
26
|
+
}) => Promise<{
|
|
27
|
+
ok: true;
|
|
28
|
+
warnings: ArtifactIssue[];
|
|
29
|
+
} | ArtifactFailure>;
|
|
30
|
+
export interface OperationsOptions extends CheckContext {
|
|
31
|
+
store: ArtifactStore;
|
|
32
|
+
/** Epoch milliseconds. Default `Date.now`. */
|
|
33
|
+
now?: () => number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* A validation refusal. The message lists every finding — each names a line
|
|
37
|
+
* and a fix — so an agent can repair the page from the error alone; it stays
|
|
38
|
+
* under the guest error bound, pointing at `validate_artifact` for the rest.
|
|
39
|
+
*/
|
|
40
|
+
export declare function invalidContent(what: string, validation: ArtifactValidation): ArtifactFailure;
|
|
41
|
+
export interface PatchEdit {
|
|
42
|
+
find: string;
|
|
43
|
+
replace: string;
|
|
44
|
+
}
|
|
45
|
+
export declare class ArtifactOperations {
|
|
46
|
+
#private;
|
|
47
|
+
constructor(options: OperationsOptions);
|
|
48
|
+
get store(): ArtifactStore;
|
|
49
|
+
get context(): CheckContext;
|
|
50
|
+
create(input: {
|
|
51
|
+
id: string;
|
|
52
|
+
title: string;
|
|
53
|
+
kind: ArtifactKind;
|
|
54
|
+
source: string;
|
|
55
|
+
documents?: Record<string, unknown>;
|
|
56
|
+
by: ArtifactActor;
|
|
57
|
+
render?: RenderPage;
|
|
58
|
+
}): Promise<Result<{
|
|
59
|
+
head: ArtifactHeadRecord;
|
|
60
|
+
warnings: ArtifactIssue[];
|
|
61
|
+
}>>;
|
|
62
|
+
update(input: {
|
|
63
|
+
id: string;
|
|
64
|
+
baseVersion: number;
|
|
65
|
+
source: string;
|
|
66
|
+
title?: string;
|
|
67
|
+
by: ArtifactActor;
|
|
68
|
+
render?: RenderPage;
|
|
69
|
+
}): Promise<Result<{
|
|
70
|
+
head: ArtifactHeadRecord;
|
|
71
|
+
warnings: ArtifactIssue[];
|
|
72
|
+
}>>;
|
|
73
|
+
patch(input: {
|
|
74
|
+
id: string;
|
|
75
|
+
baseVersion: number;
|
|
76
|
+
edits: PatchEdit[];
|
|
77
|
+
by: ArtifactActor;
|
|
78
|
+
render?: RenderPage;
|
|
79
|
+
}): Promise<Result<{
|
|
80
|
+
head: ArtifactHeadRecord;
|
|
81
|
+
warnings: ArtifactIssue[];
|
|
82
|
+
}>>;
|
|
83
|
+
setDocuments(input: {
|
|
84
|
+
id: string;
|
|
85
|
+
documents: Record<string, {
|
|
86
|
+
baseVersion: number;
|
|
87
|
+
value: unknown;
|
|
88
|
+
}>;
|
|
89
|
+
by: ArtifactActor;
|
|
90
|
+
op?: "set" | "refresh";
|
|
91
|
+
runId?: string;
|
|
92
|
+
/** A refresh result may publish only while its own claim still holds. */
|
|
93
|
+
programVersion?: number;
|
|
94
|
+
render?: RenderPage;
|
|
95
|
+
}): Promise<Result<{
|
|
96
|
+
head: ArtifactHeadRecord;
|
|
97
|
+
warnings: ArtifactIssue[];
|
|
98
|
+
}>>;
|
|
99
|
+
/** Configure one versioned program. A concurrent document edit is absorbed. */
|
|
100
|
+
setRefresh(input: {
|
|
101
|
+
id: string;
|
|
102
|
+
program: string;
|
|
103
|
+
document: string;
|
|
104
|
+
schedule: ArtifactRefreshSchedule;
|
|
105
|
+
baseVersion: number;
|
|
106
|
+
by: ArtifactActor;
|
|
107
|
+
owner?: {
|
|
108
|
+
identity: import("../types.js").AuthenticatedIdentity;
|
|
109
|
+
pool?: string;
|
|
110
|
+
};
|
|
111
|
+
}): Promise<Result<{
|
|
112
|
+
head: ArtifactHeadRecord;
|
|
113
|
+
}>>;
|
|
114
|
+
refreshConfig(id: string): Promise<Result<{
|
|
115
|
+
head: ArtifactHeadRecord;
|
|
116
|
+
program: string | undefined;
|
|
117
|
+
}>>;
|
|
118
|
+
claimRefresh(id: string, runId: string, trigger: ArtifactRunRecord["trigger"], dueOnly: boolean, claimMs: number): Promise<Result<{
|
|
119
|
+
head: ArtifactHeadRecord;
|
|
120
|
+
program: string;
|
|
121
|
+
run: ArtifactRunRecord;
|
|
122
|
+
}> | {
|
|
123
|
+
ok: false;
|
|
124
|
+
skipped: true;
|
|
125
|
+
}>;
|
|
126
|
+
finishRefresh(id: string, run: ArtifactRunRecord): Promise<void>;
|
|
127
|
+
rollback(input: {
|
|
128
|
+
id: string;
|
|
129
|
+
target: "view" | "document";
|
|
130
|
+
name?: string;
|
|
131
|
+
version: number;
|
|
132
|
+
baseVersion: number;
|
|
133
|
+
by: ArtifactActor;
|
|
134
|
+
render?: RenderPage;
|
|
135
|
+
}): Promise<Result<{
|
|
136
|
+
head: ArtifactHeadRecord;
|
|
137
|
+
warnings: ArtifactIssue[];
|
|
138
|
+
}>>;
|
|
139
|
+
setArchived(input: {
|
|
140
|
+
id: string;
|
|
141
|
+
baseRevision: number;
|
|
142
|
+
archived: boolean;
|
|
143
|
+
by: ArtifactActor;
|
|
144
|
+
}): Promise<Result<{
|
|
145
|
+
head: ArtifactHeadRecord;
|
|
146
|
+
warnings: ArtifactIssue[];
|
|
147
|
+
}>>;
|
|
148
|
+
get(id: string, options?: {
|
|
149
|
+
version?: number;
|
|
150
|
+
includeSource?: boolean;
|
|
151
|
+
}): Promise<Result<{
|
|
152
|
+
head: ArtifactHeadRecord;
|
|
153
|
+
view: ArtifactVersionRecord;
|
|
154
|
+
source?: string;
|
|
155
|
+
history: ArtifactVersionRecord[];
|
|
156
|
+
}>>;
|
|
157
|
+
getDocument(id: string, name: string, version?: number): Promise<Result<{
|
|
158
|
+
head: ArtifactHeadRecord;
|
|
159
|
+
record: ArtifactVersionRecord;
|
|
160
|
+
value: unknown;
|
|
161
|
+
history: ArtifactVersionRecord[];
|
|
162
|
+
}>>;
|
|
163
|
+
/** The page a viewer renders: a view version and exactly the documents asked for (all current ones by default). */
|
|
164
|
+
page(id: string, pin?: {
|
|
165
|
+
view?: number;
|
|
166
|
+
documents?: Record<string, number>;
|
|
167
|
+
}): Promise<Result<{
|
|
168
|
+
head: ArtifactHeadRecord;
|
|
169
|
+
view: ArtifactVersionRecord;
|
|
170
|
+
source: string;
|
|
171
|
+
documents: Record<string, {
|
|
172
|
+
record: ArtifactVersionRecord;
|
|
173
|
+
value: unknown;
|
|
174
|
+
}>;
|
|
175
|
+
}>>;
|
|
176
|
+
list(options: {
|
|
177
|
+
query?: string;
|
|
178
|
+
includeArchived?: boolean;
|
|
179
|
+
limit: number;
|
|
180
|
+
cursor?: string;
|
|
181
|
+
}): Promise<Result<{
|
|
182
|
+
items: {
|
|
183
|
+
id: string;
|
|
184
|
+
head: ArtifactHeadRecord;
|
|
185
|
+
}[];
|
|
186
|
+
nextCursor?: string;
|
|
187
|
+
}>>;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Apply every edit to `source` at once, each against the original text: every
|
|
191
|
+
* `find` must occur exactly once and no two may overlap. Returns the new text,
|
|
192
|
+
* or every reason it could not.
|
|
193
|
+
*/
|
|
194
|
+
export declare function applyPatch(source: string, edits: readonly PatchEdit[]): string | string[];
|
|
195
|
+
export {};
|