@zackbart/connecta 0.24.4 → 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.
Files changed (155) hide show
  1. package/AGENTS.md +43 -12
  2. package/CHANGELOG.md +524 -0
  3. package/README.md +32 -15
  4. package/SECURITY.md +6 -5
  5. package/bin/connecta.mjs +5 -1
  6. package/dist/activity.d.ts +10 -3
  7. package/dist/activity.js +10 -1
  8. package/dist/advertised-schema.js +53 -0
  9. package/dist/artifacts/connector.d.ts +55 -0
  10. package/dist/artifacts/connector.js +724 -0
  11. package/dist/artifacts/document.js +76 -0
  12. package/dist/artifacts/guide.js +140 -0
  13. package/dist/artifacts/html-scan.js +329 -0
  14. package/dist/artifacts/json.js +68 -0
  15. package/dist/artifacts/kv-store.d.ts +20 -0
  16. package/dist/artifacts/kv-store.js +140 -0
  17. package/dist/artifacts/markdown.js +449 -0
  18. package/dist/artifacts/module.d.ts +37 -0
  19. package/dist/artifacts/module.js +60 -0
  20. package/dist/artifacts/operations.d.ts +195 -0
  21. package/dist/artifacts/operations.js +944 -0
  22. package/dist/artifacts/refresh.d.ts +53 -0
  23. package/dist/artifacts/refresh.js +235 -0
  24. package/dist/artifacts/routes.js +194 -0
  25. package/dist/artifacts/types.d.ts +214 -0
  26. package/dist/artifacts/types.js +22 -0
  27. package/dist/artifacts/validate.d.ts +62 -0
  28. package/dist/artifacts/validate.js +652 -0
  29. package/dist/artifacts.d.ts +6 -0
  30. package/dist/artifacts.js +9 -0
  31. package/dist/auth/downstream-oauth.js +490 -106
  32. package/dist/call-admission.js +139 -113
  33. package/dist/catalog-service.js +152 -106
  34. package/dist/catalog.js +297 -38
  35. package/dist/concurrency.js +24 -23
  36. package/dist/connector-access.d.ts +18 -4
  37. package/dist/connector-access.js +65 -20
  38. package/dist/connector-caller.d.ts +8 -0
  39. package/dist/connector-caller.js +19 -0
  40. package/dist/connector-scope.js +6 -37
  41. package/dist/connectors/api.d.ts +2 -2
  42. package/dist/connectors/remote-mcp.d.ts +6 -5
  43. package/dist/connectors/remote-mcp.js +330 -240
  44. package/dist/credential-contract.d.ts +9 -0
  45. package/dist/credential-rules.js +2 -2
  46. package/dist/credentials.d.ts +6 -1
  47. package/dist/credentials.js +45 -3
  48. package/dist/errors.d.ts +16 -1
  49. package/dist/errors.js +28 -0
  50. package/dist/execute.js +745 -282
  51. package/dist/executor-admission.d.ts +11 -1
  52. package/dist/executor-admission.js +145 -63
  53. package/dist/executors/quickjs-runtime.js +4 -2
  54. package/dist/executors/quickjs.js +255 -212
  55. package/dist/fix-prompt.js +37 -0
  56. package/dist/index.d.ts +72 -7
  57. package/dist/index.js +281 -26
  58. package/dist/invocation.js +371 -286
  59. package/dist/meta-tools.js +213 -94
  60. package/dist/module-contracts.d.ts +21 -1
  61. package/dist/oauth-callback-outcome.js +94 -0
  62. package/dist/oauth-sealing.js +29 -0
  63. package/dist/operator-ui/fix-prompts.js +87 -0
  64. package/dist/operator-ui/generated.js +2 -2
  65. package/dist/operator-ui/model.d.ts +103 -1
  66. package/dist/operator-ui/setup-commands.js +53 -0
  67. package/dist/operator-ui/view.js +128 -3
  68. package/dist/program-source.js +321 -0
  69. package/dist/providers/notion.js +2 -2
  70. package/dist/providers/revenuecat.js +32 -5
  71. package/dist/providers/stripe.d.ts +3 -2
  72. package/dist/providers/vercel.js +1 -1
  73. package/dist/registry.d.ts +43 -7
  74. package/dist/registry.js +434 -288
  75. package/dist/resumable.js +1291 -0
  76. package/dist/routes/activity.js +74 -154
  77. package/dist/routes/actor-labels.js +114 -0
  78. package/dist/routes/credentials.js +196 -163
  79. package/dist/routes/mcp.js +228 -112
  80. package/dist/routes/oauth-management.js +73 -71
  81. package/dist/routes/oauth.js +44 -16
  82. package/dist/routes/operator.js +83 -0
  83. package/dist/routes/shared.d.ts +25 -1
  84. package/dist/routes/shared.js +20 -2
  85. package/dist/routes/ui-data.js +211 -0
  86. package/dist/routes/ui.js +76 -35
  87. package/dist/run-journal.js +347 -0
  88. package/dist/runtime/admission.js +43 -0
  89. package/dist/runtime/call-admission.js +67 -0
  90. package/dist/runtime/connector-scope.js +72 -0
  91. package/dist/runtime/run.js +174 -0
  92. package/dist/runtime/services.js +130 -0
  93. package/dist/runtime/shared-read.js +106 -0
  94. package/dist/runtime/storage.js +66 -0
  95. package/dist/server.js +137 -89
  96. package/dist/skills.js +28 -9
  97. package/dist/storage/file.js +39 -2
  98. package/dist/storage/memory.js +28 -16
  99. package/dist/timeout.js +39 -43
  100. package/dist/tool-safety.d.ts +27 -1
  101. package/dist/tool-safety.js +31 -0
  102. package/dist/types.d.ts +45 -7
  103. package/dist/ui.d.ts +25 -4
  104. package/dist/ui.js +77 -167
  105. package/dist/url-safety.js +157 -0
  106. package/dist/version.d.ts +1 -1
  107. package/dist/version.js +1 -1
  108. package/documentation/architecture.md +367 -16
  109. package/documentation/auth.md +163 -2
  110. package/documentation/code-mode.md +274 -56
  111. package/documentation/meta-tools.md +200 -44
  112. package/ethos.md +46 -47
  113. package/examples/worker/AGENTS.md +6 -0
  114. package/examples/worker/README.md +224 -14
  115. package/examples/worker/src/d1-activity-row.ts +14 -2
  116. package/examples/worker/src/d1-activity.ts +4 -2
  117. package/examples/worker/src/d1-storage.ts +116 -0
  118. package/examples/worker/src/index.ts +42 -7
  119. package/examples/worker/src/r2-artifact-blobs.ts +29 -0
  120. package/examples/worker/wrangler.jsonc +21 -5
  121. package/package.json +16 -4
  122. package/templates/node/AGENTS.md +9 -2
  123. package/templates/node/README.md +31 -3
  124. package/templates/node/package.json +1 -1
  125. package/templates/node/src/index.ts +27 -0
  126. package/dist/auth/downstream-oauth.d.ts +0 -200
  127. package/dist/catalog-fingerprint.d.ts +0 -19
  128. package/dist/catalog-limits.d.ts +0 -9
  129. package/dist/catalog-service.d.ts +0 -263
  130. package/dist/catalog.d.ts +0 -87
  131. package/dist/concurrency.d.ts +0 -3
  132. package/dist/connectors/guarded-fetch.d.ts +0 -96
  133. package/dist/credential-rules.d.ts +0 -85
  134. package/dist/execute.d.ts +0 -154
  135. package/dist/executor-result.d.ts +0 -10
  136. package/dist/executors/quickjs-child.d.ts +0 -1
  137. package/dist/executors/quickjs-protocol.d.ts +0 -67
  138. package/dist/favicon.d.ts +0 -1
  139. package/dist/identity.d.ts +0 -4
  140. package/dist/invocation.d.ts +0 -74
  141. package/dist/mcp-result.d.ts +0 -8
  142. package/dist/meta-tools.d.ts +0 -129
  143. package/dist/operator-ui/generated.d.ts +0 -2
  144. package/dist/operator-ui/view.d.ts +0 -188
  145. package/dist/result-shapes.d.ts +0 -13
  146. package/dist/retired-toolkits.d.ts +0 -2
  147. package/dist/routes/activity.d.ts +0 -2
  148. package/dist/routes/credentials.d.ts +0 -2
  149. package/dist/routes/mcp.d.ts +0 -10
  150. package/dist/routes/oauth-management.d.ts +0 -2
  151. package/dist/routes/oauth.d.ts +0 -2
  152. package/dist/routes/ui.d.ts +0 -2
  153. package/dist/server.d.ts +0 -9
  154. package/dist/skills.d.ts +0 -44
  155. package/dist/timeout.d.ts +0 -21
@@ -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 {};