primitive-admin 1.0.49 → 1.0.51
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/README.md +129 -10
- package/assets/skill/skills/primitive-platform/SKILL.md +85 -30
- package/dist/bin/primitive.d.ts +2 -0
- package/dist/bin/primitive.js +66 -1
- package/dist/bin/primitive.js.map +1 -1
- package/dist/src/commands/admins.d.ts +2 -0
- package/dist/src/commands/admins.js +25 -27
- package/dist/src/commands/admins.js.map +1 -1
- package/dist/src/commands/analytics.d.ts +2 -0
- package/dist/src/commands/apps.d.ts +2 -0
- package/dist/src/commands/apps.js +28 -0
- package/dist/src/commands/apps.js.map +1 -1
- package/dist/src/commands/auth.d.ts +2 -0
- package/dist/src/commands/blob-buckets.d.ts +2 -0
- package/dist/src/commands/blob-buckets.js +30 -26
- package/dist/src/commands/blob-buckets.js.map +1 -1
- package/dist/src/commands/catalog.d.ts +2 -0
- package/dist/src/commands/catalog.js +17 -18
- package/dist/src/commands/catalog.js.map +1 -1
- package/dist/src/commands/collection-type-configs.d.ts +2 -0
- package/dist/src/commands/collection-type-configs.js +9 -9
- package/dist/src/commands/collection-type-configs.js.map +1 -1
- package/dist/src/commands/collections.d.ts +2 -0
- package/dist/src/commands/collections.js +33 -36
- package/dist/src/commands/collections.js.map +1 -1
- package/dist/src/commands/comparisons.d.ts +2 -0
- package/dist/src/commands/cron-triggers.d.ts +2 -0
- package/dist/src/commands/cron-triggers.js +8 -15
- package/dist/src/commands/cron-triggers.js.map +1 -1
- package/dist/src/commands/database-types.d.ts +2 -0
- package/dist/src/commands/database-types.js +17 -18
- package/dist/src/commands/database-types.js.map +1 -1
- package/dist/src/commands/databases.d.ts +2 -0
- package/dist/src/commands/databases.js +72 -45
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/documents.d.ts +2 -0
- package/dist/src/commands/documents.js +17 -18
- package/dist/src/commands/documents.js.map +1 -1
- package/dist/src/commands/email-templates.d.ts +2 -0
- package/dist/src/commands/email-templates.js +9 -9
- package/dist/src/commands/email-templates.js.map +1 -1
- package/dist/src/commands/env.d.ts +12 -0
- package/dist/src/commands/group-type-configs.d.ts +2 -0
- package/dist/src/commands/group-type-configs.js +9 -9
- package/dist/src/commands/group-type-configs.js.map +1 -1
- package/dist/src/commands/groups.d.ts +2 -0
- package/dist/src/commands/groups.js +17 -18
- package/dist/src/commands/groups.js.map +1 -1
- package/dist/src/commands/guides.d.ts +84 -0
- package/dist/src/commands/guides.js +201 -24
- package/dist/src/commands/guides.js.map +1 -1
- package/dist/src/commands/init.d.ts +17 -0
- package/dist/src/commands/init.js +63 -25
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/integrations.d.ts +2 -0
- package/dist/src/commands/integrations.js +39 -23
- package/dist/src/commands/integrations.js.map +1 -1
- package/dist/src/commands/llm.d.ts +2 -0
- package/dist/src/commands/llm.js +4 -2
- package/dist/src/commands/llm.js.map +1 -1
- package/dist/src/commands/prompts.d.ts +2 -0
- package/dist/src/commands/prompts.js +33 -36
- package/dist/src/commands/prompts.js.map +1 -1
- package/dist/src/commands/rule-sets.d.ts +2 -0
- package/dist/src/commands/rule-sets.js +9 -9
- package/dist/src/commands/rule-sets.js.map +1 -1
- package/dist/src/commands/secrets.d.ts +2 -0
- package/dist/src/commands/skill.d.ts +2 -0
- package/dist/src/commands/sync.d.ts +99 -0
- package/dist/src/commands/sync.js +437 -31
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/tokens.d.ts +2 -0
- package/dist/src/commands/tokens.js +113 -10
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/commands/users.d.ts +2 -0
- package/dist/src/commands/users.js +41 -45
- package/dist/src/commands/users.js.map +1 -1
- package/dist/src/commands/waitlist.d.ts +2 -0
- package/dist/src/commands/waitlist.js +10 -10
- package/dist/src/commands/waitlist.js.map +1 -1
- package/dist/src/commands/webhooks.d.ts +2 -0
- package/dist/src/commands/webhooks.js +9 -9
- package/dist/src/commands/webhooks.js.map +1 -1
- package/dist/src/commands/workflows.d.ts +49 -0
- package/dist/src/commands/workflows.js +136 -57
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/api-client.d.ts +1229 -0
- package/dist/src/lib/api-client.js +44 -11
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/auth-flow.d.ts +8 -0
- package/dist/src/lib/cli-manifest.d.ts +60 -0
- package/dist/src/lib/cli-manifest.js +70 -0
- package/dist/src/lib/cli-manifest.js.map +1 -0
- package/dist/src/lib/config.d.ts +37 -0
- package/dist/src/lib/confirm-prompt.d.ts +83 -0
- package/dist/src/lib/confirm-prompt.js +110 -0
- package/dist/src/lib/confirm-prompt.js.map +1 -0
- package/dist/src/lib/constants.d.ts +2 -0
- package/dist/src/lib/crash-handlers.d.ts +20 -0
- package/dist/src/lib/crash-handlers.js +49 -0
- package/dist/src/lib/crash-handlers.js.map +1 -0
- package/dist/src/lib/credentials-store.d.ts +79 -0
- package/dist/src/lib/csv.d.ts +48 -0
- package/dist/src/lib/db-codegen/dbFingerprint.d.ts +10 -0
- package/dist/src/lib/db-codegen/dbGenerator.d.ts +111 -0
- package/dist/src/lib/db-codegen/dbNaming.d.ts +45 -0
- package/dist/src/lib/db-codegen/dbTemplates.d.ts +97 -0
- package/dist/src/lib/db-codegen/dbTemplates.js +31 -10
- package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTsTypes.d.ts +78 -0
- package/dist/src/lib/db-codegen/dbTsTypes.js +2 -2
- package/dist/src/lib/db-codegen/dbTsTypes.js.map +1 -1
- package/dist/src/lib/env-resolver.d.ts +62 -0
- package/dist/src/lib/fetch.d.ts +5 -0
- package/dist/src/lib/generated-allowlist.d.ts +28 -0
- package/dist/src/lib/generated-allowlist.js +181 -0
- package/dist/src/lib/generated-allowlist.js.map +1 -0
- package/dist/src/lib/init-config.d.ts +46 -0
- package/dist/src/lib/init-config.js +7 -0
- package/dist/src/lib/init-config.js.map +1 -1
- package/dist/src/lib/migration-nag.d.ts +49 -0
- package/dist/src/lib/output.d.ts +49 -0
- package/dist/src/lib/output.js +25 -1
- package/dist/src/lib/output.js.map +1 -1
- package/dist/src/lib/paginate.d.ts +33 -0
- package/dist/src/lib/project-config.d.ts +97 -0
- package/dist/src/lib/refresh-admin-credentials.d.ts +65 -0
- package/dist/src/lib/resolve-platform.d.ts +45 -0
- package/dist/src/lib/resolve-platform.js +43 -0
- package/dist/src/lib/resolve-platform.js.map +1 -0
- package/dist/src/lib/skill-installer.d.ts +23 -0
- package/dist/src/lib/snapshots.d.ts +99 -0
- package/dist/src/lib/snapshots.js +357 -0
- package/dist/src/lib/snapshots.js.map +1 -0
- package/dist/src/lib/sync-paths.d.ts +72 -0
- package/dist/src/lib/sync-paths.js +29 -1
- package/dist/src/lib/sync-paths.js.map +1 -1
- package/dist/src/lib/template.d.ts +93 -0
- package/dist/src/lib/token-inject.d.ts +56 -0
- package/dist/src/lib/token-inject.js +204 -0
- package/dist/src/lib/token-inject.js.map +1 -0
- package/dist/src/lib/toml-database-config.d.ts +132 -0
- package/dist/src/lib/toml-params-validator.d.ts +95 -0
- package/dist/src/lib/version-check.d.ts +10 -0
- package/dist/src/lib/workflow-fragments.d.ts +41 -0
- package/dist/src/lib/workflow-toml-validator.d.ts +95 -0
- package/dist/src/lib/workflow-toml-validator.js +71 -130
- package/dist/src/lib/workflow-toml-validator.js.map +1 -1
- package/dist/src/types/index.d.ts +513 -0
- package/dist/src/validators.d.ts +64 -0
- package/dist/src/validators.js +63 -0
- package/dist/src/validators.js.map +1 -0
- package/package.json +10 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Push-time validator for workflow TOML files (issue #685).
|
|
2
|
+
* Push-time validator for workflow TOML files (issue #685, #998).
|
|
3
3
|
*
|
|
4
4
|
* Detects the common footgun where a user writes `[steps.<id>.<field>]` under
|
|
5
5
|
* an open `[[steps]]` array. TOML parses that as a sub-table on the
|
|
@@ -8,138 +8,55 @@
|
|
|
8
8
|
* unrecognized top-level field — the runtime silently ignores it, and the
|
|
9
9
|
* step then runs with an empty `request` block.
|
|
10
10
|
*
|
|
11
|
-
* The validator walks every step in `tomlData.steps[]
|
|
12
|
-
* top-level field not in the
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
11
|
+
* The validator walks every step in `tomlData.steps[]`. For a step whose
|
|
12
|
+
* `kind` the CLI KNOWS about, it reports any top-level field not in the
|
|
13
|
+
* generated allowlist. For an UNKNOWN kind (an old CLI run against a newer
|
|
14
|
+
* server that registered a step kind the CLI doesn't have), it SKIPS the
|
|
15
|
+
* per-field allowlist check — but still runs the kind-agnostic
|
|
16
|
+
* misnested-header footgun detector. This is the #998 fix: the recurring
|
|
17
|
+
* "newer server kind → false-reject of valid fields" failure (#685/#802/#971
|
|
18
|
+
* were all false rejections) becomes "unvalidated, not rejected."
|
|
18
19
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
20
|
+
* ── Source of truth (#998) ───────────────────────────────────────────────
|
|
21
|
+
* The allowlist field union and the known-kind set are GENERATED from the
|
|
22
|
+
* server step runners (`src/workflows/steps/*.ts`) and the universal
|
|
23
|
+
* `BaseStepDefinition` shape into the committed
|
|
24
|
+
* `cli/src/lib/generated-allowlist.ts` artifact (the CLI does NOT import
|
|
25
|
+
* server `src/` at runtime — only the build-time generator does). The union is
|
|
26
|
+
* derived from what each runner READS, not what the `*StepDefinition` TYPE
|
|
27
|
+
* declares — types over-declare and would weaken the footgun detector. A CI
|
|
28
|
+
* freshness guard (`gen-allowlist.mjs --check`, also asserted by the #985
|
|
29
|
+
* drift-guard test) keeps the committed artifact in sync with the runners, so
|
|
30
|
+
* the hand-edit drift class (#685/#802/#971) cannot recur for the same-version
|
|
31
|
+
* case. Regenerate with `node cli/scripts/gen-allowlist.mjs`.
|
|
28
32
|
*/
|
|
33
|
+
import { GENERATED_ALLOWLISTED_FIELDS, GENERATED_KNOWN_KINDS, } from "./generated-allowlist.js";
|
|
29
34
|
/**
|
|
30
|
-
* Universal-
|
|
31
|
-
*
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
35
|
+
* Universal-and-consumed allowlist of top-level fields permitted on a step
|
|
36
|
+
* (known kinds). Generated from the runners; see header.
|
|
37
|
+
*/
|
|
38
|
+
const ALLOWLISTED_FIELDS = new Set(GENERATED_ALLOWLISTED_FIELDS);
|
|
39
|
+
/**
|
|
40
|
+
* The set of step kinds the CLI knows about (the server's registered kinds at
|
|
41
|
+
* generation time). A step whose `kind` is NOT in this set has its per-field
|
|
42
|
+
* allowlist check skipped — the kind-agnostic footgun detector still runs.
|
|
43
|
+
*/
|
|
44
|
+
const KNOWN_KINDS = new Set(GENERATED_KNOWN_KINDS);
|
|
45
|
+
/**
|
|
46
|
+
* Read-only view of `ALLOWLISTED_FIELDS` for the drift-guard test (#985).
|
|
38
47
|
*
|
|
39
|
-
*
|
|
48
|
+
* Exported so `cli/tests/unit/workflow-toml-validator-drift-guard.test.ts` can
|
|
49
|
+
* assert this set stays a superset of every top-level field the step runners
|
|
50
|
+
* in `src/workflows/steps/*.ts` actually read — checking the *live* set the
|
|
51
|
+
* validator enforces rather than a copy that could itself drift. Not part of
|
|
52
|
+
* the public validator API; consumed only by the guard.
|
|
53
|
+
*/
|
|
54
|
+
export const ALLOWLISTED_FIELDS_FOR_DRIFT_GUARD = ALLOWLISTED_FIELDS;
|
|
55
|
+
/**
|
|
56
|
+
* Read-only view of `KNOWN_KINDS` for the drift-guard test (#998). Lets the
|
|
57
|
+
* guard assert the generated known-kind set matches a fresh scan.
|
|
40
58
|
*/
|
|
41
|
-
const
|
|
42
|
-
// Universal (BaseStepDefinition + engine).
|
|
43
|
-
"as",
|
|
44
|
-
"concurrency",
|
|
45
|
-
"continueOnError",
|
|
46
|
-
"description",
|
|
47
|
-
"forEach",
|
|
48
|
-
"id",
|
|
49
|
-
"kind",
|
|
50
|
-
"maxItems",
|
|
51
|
-
"name",
|
|
52
|
-
"runIf",
|
|
53
|
-
"saveAs",
|
|
54
|
-
"selector",
|
|
55
|
-
"strict",
|
|
56
|
-
"successWhen",
|
|
57
|
-
"timeout",
|
|
58
|
-
// Per-kind, union across runners.
|
|
59
|
-
"_testSteps", // workflow.call test-mode override
|
|
60
|
-
"action",
|
|
61
|
-
"appId",
|
|
62
|
-
"asBase64",
|
|
63
|
-
"attachments",
|
|
64
|
-
"blobId",
|
|
65
|
-
"bodyMode",
|
|
66
|
-
"bucketId",
|
|
67
|
-
"bucketKey",
|
|
68
|
-
"cacheTtlSeconds",
|
|
69
|
-
"cases", // switch: array of { when, output } (#802)
|
|
70
|
-
"configId",
|
|
71
|
-
"content",
|
|
72
|
-
"contentBase64",
|
|
73
|
-
"contentType",
|
|
74
|
-
"context",
|
|
75
|
-
"cursor",
|
|
76
|
-
"cursorField",
|
|
77
|
-
"databaseId",
|
|
78
|
-
"default", // switch: { output } fallback branch (#802)
|
|
79
|
-
"direction",
|
|
80
|
-
"dryRun",
|
|
81
|
-
"durationMs",
|
|
82
|
-
"email",
|
|
83
|
-
"events",
|
|
84
|
-
"expiresInSeconds",
|
|
85
|
-
"feature",
|
|
86
|
-
"filename",
|
|
87
|
-
"filters",
|
|
88
|
-
"groupBy",
|
|
89
|
-
"groupId",
|
|
90
|
-
"groupType",
|
|
91
|
-
"htmlBody",
|
|
92
|
-
"includeUserDetails",
|
|
93
|
-
"input",
|
|
94
|
-
"integrationKey",
|
|
95
|
-
"itemsField",
|
|
96
|
-
"limit",
|
|
97
|
-
"limits", // script: per-step runtime caps (lower-only-clamp; #783)
|
|
98
|
-
"maxPages",
|
|
99
|
-
"message",
|
|
100
|
-
"messages",
|
|
101
|
-
"metrics",
|
|
102
|
-
"model",
|
|
103
|
-
"modelOverride",
|
|
104
|
-
"ms",
|
|
105
|
-
"multipartFields",
|
|
106
|
-
"onPartialFailure",
|
|
107
|
-
"operationName",
|
|
108
|
-
"output",
|
|
109
|
-
"page",
|
|
110
|
-
"params",
|
|
111
|
-
"payload",
|
|
112
|
-
"plugins",
|
|
113
|
-
"prompt",
|
|
114
|
-
"promptKey",
|
|
115
|
-
"query",
|
|
116
|
-
"queryType",
|
|
117
|
-
"ref", // script: named reference to a Script (resolved at publish time; #783)
|
|
118
|
-
"request",
|
|
119
|
-
"route",
|
|
120
|
-
"runs",
|
|
121
|
-
"sort",
|
|
122
|
-
"step", // collect: nested inner step definition
|
|
123
|
-
"subject",
|
|
124
|
-
"tags",
|
|
125
|
-
"temperature",
|
|
126
|
-
"templateType",
|
|
127
|
-
"textBody",
|
|
128
|
-
"thinkingLevel",
|
|
129
|
-
"to",
|
|
130
|
-
"tools",
|
|
131
|
-
"tool_choice",
|
|
132
|
-
"top_p",
|
|
133
|
-
"toUserId",
|
|
134
|
-
"type",
|
|
135
|
-
"user",
|
|
136
|
-
"userId",
|
|
137
|
-
"userUlid",
|
|
138
|
-
"variables",
|
|
139
|
-
"windowDays",
|
|
140
|
-
"with", // script: input context for the script (whole `with:` block; #783)
|
|
141
|
-
"workflowKey",
|
|
142
|
-
]);
|
|
59
|
+
export const KNOWN_KINDS_FOR_DRIFT_GUARD = KNOWN_KINDS;
|
|
143
60
|
/**
|
|
144
61
|
* Walk a parsed workflow TOML document and return all unknown-field errors.
|
|
145
62
|
*
|
|
@@ -228,6 +145,17 @@ export function validateWorkflowToml(tomlData) {
|
|
|
228
145
|
*/
|
|
229
146
|
function validateStepObject(step, stepIndex, parentStepId, errors) {
|
|
230
147
|
const stepId = typeof step.id === "string" ? step.id : null;
|
|
148
|
+
// #998: kind-membership branch. The CLI ships independently and may run
|
|
149
|
+
// against a NEWER server that registered a step kind the CLI's generated
|
|
150
|
+
// known-kind set doesn't have. For such an UNKNOWN kind we skip the
|
|
151
|
+
// per-field allowlist check (so a valid new-kind field is never falsely
|
|
152
|
+
// rejected — the recurring #685/#802/#971 failure) while STILL running the
|
|
153
|
+
// kind-agnostic misnested-header footgun detector below. For a KNOWN kind
|
|
154
|
+
// the full allowlist check applies as before. A missing/non-string `kind`
|
|
155
|
+
// is treated as known so the legacy strict check still catches obviously
|
|
156
|
+
// malformed steps (the runtime would reject a kindless step anyway).
|
|
157
|
+
const kind = typeof step.kind === "string" ? step.kind : null;
|
|
158
|
+
const isKnownKind = kind === null || KNOWN_KINDS.has(kind);
|
|
231
159
|
for (const key of Object.keys(step)) {
|
|
232
160
|
const value = step[key];
|
|
233
161
|
// Codex finding 1 (PR #762, 2026-05-15): self-id misnesting must be
|
|
@@ -258,7 +186,11 @@ function validateStepObject(step, stepIndex, parentStepId, errors) {
|
|
|
258
186
|
typeof value === "object" &&
|
|
259
187
|
!Array.isArray(value) &&
|
|
260
188
|
!isSwitchFallbackField;
|
|
261
|
-
|
|
189
|
+
// Known kind → full allowlist check (an allowlisted field passes).
|
|
190
|
+
// Unknown kind → skip the per-field allowlist check entirely: only the
|
|
191
|
+
// structural footgun (self-id misnest) below can flag a field. The
|
|
192
|
+
// footgun check is kind-agnostic, so it fires on every step regardless.
|
|
193
|
+
if (!isSelfIdMisnest && (!isKnownKind || ALLOWLISTED_FIELDS.has(key)))
|
|
262
194
|
continue;
|
|
263
195
|
// Two failure modes are common enough to call out specifically in
|
|
264
196
|
// the hint:
|
|
@@ -328,7 +260,16 @@ export function formatWorkflowTomlErrors(filePath, errors) {
|
|
|
328
260
|
// the offending field is on the inner step, not the outer collect.
|
|
329
261
|
// The outer step's id (if any) is also included in the prefix so the
|
|
330
262
|
// diagnostic can be cross-referenced against the parent's TOML header.
|
|
331
|
-
|
|
263
|
+
//
|
|
264
|
+
// #971: top-level errors carry `parentStepId: null` (set explicitly at the
|
|
265
|
+
// top-level `validateStepObject` call); only genuine collect-inner errors
|
|
266
|
+
// carry a real id (or `undefined` if a future caller omits it). Use a
|
|
267
|
+
// non-null check so BOTH `null` and `undefined` top-level errors render as
|
|
268
|
+
// a bare `steps[N]` without the `(inside collect step)` suffix. The prior
|
|
269
|
+
// `!== undefined` check treated `null` as inner (`null !== undefined` is
|
|
270
|
+
// `true`), mislabeling every top-level error as inside a collect step (a
|
|
271
|
+
// regression from PR #762).
|
|
272
|
+
const isInnerStep = err.parentStepId != null;
|
|
332
273
|
const slot = isInnerStep
|
|
333
274
|
? `steps[${err.stepIndex}].step`
|
|
334
275
|
: `steps[${err.stepIndex}]`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-toml-validator.js","sourceRoot":"","sources":["../../../src/lib/workflow-toml-validator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workflow-toml-validator.js","sourceRoot":"","sources":["../../../src/lib/workflow-toml-validator.ts"],"names":[],"mappings":"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"}
|