@intutic/cli 1.10.0 → 1.10.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.
- package/README.md +1 -0
- package/dist/cli.js +868 -30
- package/dist/cli.js.map +1 -1
- package/dist/commands/attenuate.d.ts +39 -0
- package/dist/commands/attenuate.d.ts.map +1 -0
- package/dist/commands/attenuate.js +98 -0
- package/dist/commands/attenuate.js.map +1 -0
- package/dist/commands/budget.d.ts +80 -0
- package/dist/commands/budget.d.ts.map +1 -1
- package/dist/commands/budget.js +119 -3
- package/dist/commands/budget.js.map +1 -1
- package/dist/commands/connect.d.ts +10 -0
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +358 -48
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/credentials.d.ts +31 -0
- package/dist/commands/credentials.d.ts.map +1 -0
- package/dist/commands/credentials.js +134 -0
- package/dist/commands/credentials.js.map +1 -0
- package/dist/commands/decision.d.ts +37 -0
- package/dist/commands/decision.d.ts.map +1 -0
- package/dist/commands/decision.js +56 -0
- package/dist/commands/decision.js.map +1 -0
- package/dist/commands/doctor.d.ts +38 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +228 -18
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/enforce.d.ts +33 -0
- package/dist/commands/enforce.d.ts.map +1 -0
- package/dist/commands/enforce.js +150 -0
- package/dist/commands/enforce.js.map +1 -0
- package/dist/commands/enterprise.d.ts +29 -0
- package/dist/commands/enterprise.d.ts.map +1 -0
- package/dist/commands/enterprise.js +141 -0
- package/dist/commands/enterprise.js.map +1 -0
- package/dist/commands/env.d.ts +7 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +55 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/exec.d.ts +38 -2
- package/dist/commands/exec.d.ts.map +1 -1
- package/dist/commands/exec.js +247 -10
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/findings.d.ts +84 -0
- package/dist/commands/findings.d.ts.map +1 -0
- package/dist/commands/findings.js +329 -0
- package/dist/commands/findings.js.map +1 -0
- package/dist/commands/gateway.d.ts +62 -0
- package/dist/commands/gateway.d.ts.map +1 -0
- package/dist/commands/gateway.js +298 -0
- package/dist/commands/gateway.js.map +1 -0
- package/dist/commands/guardrails.d.ts +81 -0
- package/dist/commands/guardrails.d.ts.map +1 -0
- package/dist/commands/guardrails.js +735 -0
- package/dist/commands/guardrails.js.map +1 -0
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +14 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install-daemon.d.ts +70 -3
- package/dist/commands/install-daemon.d.ts.map +1 -1
- package/dist/commands/install-daemon.js +482 -47
- package/dist/commands/install-daemon.js.map +1 -1
- package/dist/commands/integrity.d.ts +205 -0
- package/dist/commands/integrity.d.ts.map +1 -0
- package/dist/commands/integrity.js +620 -0
- package/dist/commands/integrity.js.map +1 -0
- package/dist/commands/judge.d.ts +31 -0
- package/dist/commands/judge.d.ts.map +1 -0
- package/dist/commands/judge.js +118 -0
- package/dist/commands/judge.js.map +1 -0
- package/dist/commands/org.d.ts +31 -0
- package/dist/commands/org.d.ts.map +1 -0
- package/dist/commands/org.js +159 -0
- package/dist/commands/org.js.map +1 -0
- package/dist/commands/policy.d.ts +138 -4
- package/dist/commands/policy.d.ts.map +1 -1
- package/dist/commands/policy.js +538 -97
- package/dist/commands/policy.js.map +1 -1
- package/dist/commands/predict-cost.d.ts +45 -0
- package/dist/commands/predict-cost.d.ts.map +1 -0
- package/dist/commands/predict-cost.js +123 -0
- package/dist/commands/predict-cost.js.map +1 -0
- package/dist/commands/rollback.d.ts +5 -0
- package/dist/commands/rollback.d.ts.map +1 -0
- package/dist/commands/rollback.js +142 -0
- package/dist/commands/rollback.js.map +1 -0
- package/dist/commands/routing.d.ts +62 -0
- package/dist/commands/routing.d.ts.map +1 -0
- package/dist/commands/routing.js +121 -0
- package/dist/commands/routing.js.map +1 -0
- package/dist/commands/setup.d.ts +62 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +238 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/skill.d.ts +268 -1
- package/dist/commands/skill.d.ts.map +1 -1
- package/dist/commands/skill.js +744 -39
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/sops.d.ts +95 -0
- package/dist/commands/sops.d.ts.map +1 -1
- package/dist/commands/sops.js +334 -34
- package/dist/commands/sops.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +1 -18
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +44 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/team.d.ts +38 -0
- package/dist/commands/team.d.ts.map +1 -0
- package/dist/commands/team.js +140 -0
- package/dist/commands/team.js.map +1 -0
- package/dist/commands/traces.d.ts +8 -1
- package/dist/commands/traces.d.ts.map +1 -1
- package/dist/commands/traces.js +114 -15
- package/dist/commands/traces.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +2 -1
- package/dist/commands/whoami.js.map +1 -1
- package/dist/config/keychain.d.ts +10 -2
- package/dist/config/keychain.d.ts.map +1 -1
- package/dist/config/keychain.js +83 -14
- package/dist/config/keychain.js.map +1 -1
- package/dist/config/paths.d.ts +27 -0
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +37 -6
- package/dist/config/paths.js.map +1 -1
- package/dist/config/store.d.ts.map +1 -1
- package/dist/config/store.js +19 -3
- package/dist/config/store.js.map +1 -1
- package/dist/harness/ag2.d.ts +22 -0
- package/dist/harness/ag2.d.ts.map +1 -0
- package/dist/harness/ag2.js +34 -0
- package/dist/harness/ag2.js.map +1 -0
- package/dist/harness/agentcore.d.ts +55 -0
- package/dist/harness/agentcore.d.ts.map +1 -0
- package/dist/harness/agentcore.js +119 -0
- package/dist/harness/agentcore.js.map +1 -0
- package/dist/harness/agenticOrchestrator.d.ts +52 -0
- package/dist/harness/agenticOrchestrator.d.ts.map +1 -0
- package/dist/harness/agenticOrchestrator.js +115 -0
- package/dist/harness/agenticOrchestrator.js.map +1 -0
- package/dist/harness/aiSdkHarness.d.ts +30 -0
- package/dist/harness/aiSdkHarness.d.ts.map +1 -0
- package/dist/harness/aiSdkHarness.js +51 -0
- package/dist/harness/aiSdkHarness.js.map +1 -0
- package/dist/harness/aiSdkWorkflow.d.ts +26 -0
- package/dist/harness/aiSdkWorkflow.d.ts.map +1 -0
- package/dist/harness/aiSdkWorkflow.js +39 -0
- package/dist/harness/aiSdkWorkflow.js.map +1 -0
- package/dist/harness/autogen.d.ts +24 -0
- package/dist/harness/autogen.d.ts.map +1 -0
- package/dist/harness/autogen.js +36 -0
- package/dist/harness/autogen.js.map +1 -0
- package/dist/harness/base.js.map +1 -1
- package/dist/harness/continue.d.ts.map +1 -1
- package/dist/harness/continue.js +2 -1
- package/dist/harness/continue.js.map +1 -1
- package/dist/harness/crewai.d.ts +15 -0
- package/dist/harness/crewai.d.ts.map +1 -0
- package/dist/harness/crewai.js +26 -0
- package/dist/harness/crewai.js.map +1 -0
- package/dist/harness/detector.d.ts +1 -1
- package/dist/harness/detector.d.ts.map +1 -1
- package/dist/harness/detector.js +47 -1
- package/dist/harness/detector.js.map +1 -1
- package/dist/harness/dsh.d.ts +19 -0
- package/dist/harness/dsh.d.ts.map +1 -0
- package/dist/harness/dsh.js +93 -0
- package/dist/harness/dsh.js.map +1 -0
- package/dist/harness/eve.d.ts +40 -0
- package/dist/harness/eve.d.ts.map +1 -0
- package/dist/harness/eve.js +67 -0
- package/dist/harness/eve.js.map +1 -0
- package/dist/harness/googleAdk.d.ts +18 -0
- package/dist/harness/googleAdk.d.ts.map +1 -0
- package/dist/harness/googleAdk.js +29 -0
- package/dist/harness/googleAdk.js.map +1 -0
- package/dist/harness/goose.d.ts.map +1 -1
- package/dist/harness/goose.js +5 -1
- package/dist/harness/goose.js.map +1 -1
- package/dist/harness/grok.d.ts +16 -0
- package/dist/harness/grok.d.ts.map +1 -0
- package/dist/harness/grok.js +78 -0
- package/dist/harness/grok.js.map +1 -0
- package/dist/harness/jsSdkGatedAdapter.d.ts +102 -0
- package/dist/harness/jsSdkGatedAdapter.d.ts.map +1 -0
- package/dist/harness/jsSdkGatedAdapter.js +139 -0
- package/dist/harness/jsSdkGatedAdapter.js.map +1 -0
- package/dist/harness/langchain.d.ts +22 -0
- package/dist/harness/langchain.d.ts.map +1 -0
- package/dist/harness/langchain.js +33 -0
- package/dist/harness/langchain.js.map +1 -0
- package/dist/harness/langgraph.d.ts +22 -0
- package/dist/harness/langgraph.d.ts.map +1 -0
- package/dist/harness/langgraph.js +80 -0
- package/dist/harness/langgraph.js.map +1 -0
- package/dist/harness/mastra.d.ts +21 -0
- package/dist/harness/mastra.d.ts.map +1 -0
- package/dist/harness/mastra.js +33 -0
- package/dist/harness/mastra.js.map +1 -0
- package/dist/harness/muse.d.ts +22 -0
- package/dist/harness/muse.d.ts.map +1 -0
- package/dist/harness/muse.js +92 -0
- package/dist/harness/muse.js.map +1 -0
- package/dist/harness/n8n.d.ts.map +1 -1
- package/dist/harness/n8n.js +36 -11
- package/dist/harness/n8n.js.map +1 -1
- package/dist/harness/openaiAgents.d.ts +40 -0
- package/dist/harness/openaiAgents.d.ts.map +1 -0
- package/dist/harness/openaiAgents.js +107 -0
- package/dist/harness/openaiAgents.js.map +1 -0
- package/dist/harness/opencode.d.ts +24 -0
- package/dist/harness/opencode.d.ts.map +1 -0
- package/dist/harness/opencode.js +97 -0
- package/dist/harness/opencode.js.map +1 -0
- package/dist/harness/pydanticAi.d.ts +19 -0
- package/dist/harness/pydanticAi.d.ts.map +1 -0
- package/dist/harness/pydanticAi.js +30 -0
- package/dist/harness/pydanticAi.js.map +1 -0
- package/dist/harness/sdkGatedAdapter.d.ts +55 -0
- package/dist/harness/sdkGatedAdapter.d.ts.map +1 -0
- package/dist/harness/sdkGatedAdapter.js +85 -0
- package/dist/harness/sdkGatedAdapter.js.map +1 -0
- package/dist/harness/smolagents.d.ts +22 -0
- package/dist/harness/smolagents.d.ts.map +1 -0
- package/dist/harness/smolagents.js +33 -0
- package/dist/harness/smolagents.js.map +1 -0
- package/dist/harness/strands.d.ts +22 -0
- package/dist/harness/strands.d.ts.map +1 -0
- package/dist/harness/strands.js +35 -0
- package/dist/harness/strands.js.map +1 -0
- package/dist/harness/trueforge.d.ts +25 -0
- package/dist/harness/trueforge.d.ts.map +1 -0
- package/dist/harness/trueforge.js +40 -0
- package/dist/harness/trueforge.js.map +1 -0
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/harness/types.js +70 -0
- package/dist/harness/types.js.map +1 -1
- package/dist/harness/vercelAiSdk.d.ts +31 -0
- package/dist/harness/vercelAiSdk.d.ts.map +1 -0
- package/dist/harness/vercelAiSdk.js +44 -0
- package/dist/harness/vercelAiSdk.js.map +1 -0
- package/dist/harness/xirp.d.ts +43 -0
- package/dist/harness/xirp.d.ts.map +1 -0
- package/dist/harness/xirp.js +95 -0
- package/dist/harness/xirp.js.map +1 -0
- package/dist/lib/api.d.ts +68 -0
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +108 -67
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/authMessages.d.ts +19 -0
- package/dist/lib/authMessages.d.ts.map +1 -0
- package/dist/lib/authMessages.js +20 -0
- package/dist/lib/authMessages.js.map +1 -0
- package/dist/lib/binaryChecksum.d.ts +12 -0
- package/dist/lib/binaryChecksum.d.ts.map +1 -0
- package/dist/lib/binaryChecksum.js +45 -0
- package/dist/lib/binaryChecksum.js.map +1 -0
- package/dist/lib/binaryOnPath.d.ts +24 -0
- package/dist/lib/binaryOnPath.d.ts.map +1 -0
- package/dist/lib/binaryOnPath.js +31 -0
- package/dist/lib/binaryOnPath.js.map +1 -0
- package/dist/lib/caTrust.d.ts +69 -0
- package/dist/lib/caTrust.d.ts.map +1 -0
- package/dist/lib/caTrust.js +169 -0
- package/dist/lib/caTrust.js.map +1 -0
- package/dist/lib/ciscoScanner.d.ts +178 -0
- package/dist/lib/ciscoScanner.d.ts.map +1 -0
- package/dist/lib/ciscoScanner.js +292 -0
- package/dist/lib/ciscoScanner.js.map +1 -0
- package/dist/lib/decisionsLogRefresh.d.ts +28 -0
- package/dist/lib/decisionsLogRefresh.d.ts.map +1 -0
- package/dist/lib/decisionsLogRefresh.js +54 -0
- package/dist/lib/decisionsLogRefresh.js.map +1 -0
- package/dist/lib/deviceReport.d.ts +26 -0
- package/dist/lib/deviceReport.d.ts.map +1 -0
- package/dist/lib/deviceReport.js +55 -0
- package/dist/lib/deviceReport.js.map +1 -0
- package/dist/lib/elevation.d.ts +58 -0
- package/dist/lib/elevation.d.ts.map +1 -0
- package/dist/lib/elevation.js +83 -0
- package/dist/lib/elevation.js.map +1 -0
- package/dist/lib/enforcementState.d.ts +69 -0
- package/dist/lib/enforcementState.d.ts.map +1 -0
- package/dist/lib/enforcementState.js +113 -0
- package/dist/lib/enforcementState.js.map +1 -0
- package/dist/lib/ensureValkey.d.ts.map +1 -1
- package/dist/lib/ensureValkey.js +2 -2
- package/dist/lib/ensureValkey.js.map +1 -1
- package/dist/lib/envInjector.d.ts.map +1 -1
- package/dist/lib/envInjector.js +22 -4
- package/dist/lib/envInjector.js.map +1 -1
- package/dist/lib/gitHooks.d.ts +7 -2
- package/dist/lib/gitHooks.d.ts.map +1 -1
- package/dist/lib/gitHooks.js +180 -13
- package/dist/lib/gitHooks.js.map +1 -1
- package/dist/lib/gracefulShutdown.d.ts +37 -0
- package/dist/lib/gracefulShutdown.d.ts.map +1 -0
- package/dist/lib/gracefulShutdown.js +57 -0
- package/dist/lib/gracefulShutdown.js.map +1 -0
- package/dist/lib/graphIdentity.d.ts +80 -0
- package/dist/lib/graphIdentity.d.ts.map +1 -0
- package/dist/lib/graphIdentity.js +120 -0
- package/dist/lib/graphIdentity.js.map +1 -0
- package/dist/lib/localTraces.d.ts +61 -0
- package/dist/lib/localTraces.d.ts.map +1 -0
- package/dist/lib/localTraces.js +173 -0
- package/dist/lib/localTraces.js.map +1 -0
- package/dist/lib/mdmManifest.d.ts +73 -0
- package/dist/lib/mdmManifest.d.ts.map +1 -0
- package/dist/lib/mdmManifest.js +190 -0
- package/dist/lib/mdmManifest.js.map +1 -0
- package/dist/lib/onboarding.d.ts.map +1 -1
- package/dist/lib/onboarding.js +60 -1
- package/dist/lib/onboarding.js.map +1 -1
- package/dist/lib/otelPropagation.d.ts +26 -0
- package/dist/lib/otelPropagation.d.ts.map +1 -0
- package/dist/lib/otelPropagation.js +40 -0
- package/dist/lib/otelPropagation.js.map +1 -0
- package/dist/lib/policySnapshot.d.ts +92 -0
- package/dist/lib/policySnapshot.d.ts.map +1 -0
- package/dist/lib/policySnapshot.js +173 -0
- package/dist/lib/policySnapshot.js.map +1 -0
- package/dist/lib/process.d.ts.map +1 -1
- package/dist/lib/process.js +60 -0
- package/dist/lib/process.js.map +1 -1
- package/dist/lib/providerProbe.d.ts +28 -0
- package/dist/lib/providerProbe.d.ts.map +1 -0
- package/dist/lib/providerProbe.js +57 -0
- package/dist/lib/providerProbe.js.map +1 -0
- package/dist/lib/proxyBinary.d.ts +19 -0
- package/dist/lib/proxyBinary.d.ts.map +1 -0
- package/dist/lib/proxyBinary.js +30 -0
- package/dist/lib/proxyBinary.js.map +1 -0
- package/dist/lib/sandbox/firecracker.d.ts +89 -0
- package/dist/lib/sandbox/firecracker.d.ts.map +1 -0
- package/dist/lib/sandbox/firecracker.js +135 -0
- package/dist/lib/sandbox/firecracker.js.map +1 -0
- package/dist/lib/sandbox/index.d.ts +34 -0
- package/dist/lib/sandbox/index.d.ts.map +1 -0
- package/dist/lib/sandbox/index.js +54 -0
- package/dist/lib/sandbox/index.js.map +1 -0
- package/dist/lib/sandbox/oci.d.ts +38 -0
- package/dist/lib/sandbox/oci.d.ts.map +1 -0
- package/dist/lib/sandbox/oci.js +108 -0
- package/dist/lib/sandbox/oci.js.map +1 -0
- package/dist/lib/sandbox/types.d.ts +48 -0
- package/dist/lib/sandbox/types.d.ts.map +1 -0
- package/dist/lib/sandbox/types.js +12 -0
- package/dist/lib/sandbox/types.js.map +1 -0
- package/dist/lib/sopFrontMatter.d.ts +50 -0
- package/dist/lib/sopFrontMatter.d.ts.map +1 -0
- package/dist/lib/sopFrontMatter.js +129 -0
- package/dist/lib/sopFrontMatter.js.map +1 -0
- package/package.json +11 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/sops.d.ts
CHANGED
|
@@ -1,4 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `intutic sops push <name>` — one control-plane SOP per file under
|
|
3
|
+
* `.intutic/sops/<name>/*.md`, each carrying that file's own declared
|
|
4
|
+
* `title:`/`risk_tier:`/`version:` front matter rather than the folder's
|
|
5
|
+
* name and two hardcoded constants.
|
|
6
|
+
*
|
|
7
|
+
* Previously concatenated every file in the folder into one blob under one
|
|
8
|
+
* title derived from the folder name, and always sent `risk_tier: 'LOW'`,
|
|
9
|
+
* `version: '1.0.0'` regardless of what the files declared — a folder of
|
|
10
|
+
* five SOPs at five different risk tiers pushed as one LOW-tier SOP whose
|
|
11
|
+
* title named none of them. Per-file push is what the DB plane can actually
|
|
12
|
+
* represent faithfully: `sop_registry` has no concept of "a folder of SOPs,"
|
|
13
|
+
* only individual rows.
|
|
14
|
+
*
|
|
15
|
+
* Front matter is stripped before the body is sent as `markdownContent` —
|
|
16
|
+
* `formatOrgSopConstraints` in `routes/judge.ts` interpolates that field
|
|
17
|
+
* verbatim into the judge's system prompt, and a `---\nrisk_tier: HIGH\n---`
|
|
18
|
+
* block in the middle of it is noise no judge prompt should carry.
|
|
19
|
+
* Declarative enforcement keys (`deny_tools:`, `requires_before:`, ...) have
|
|
20
|
+
* no `sop_registry` column, so they are lost from the DB-plane row exactly
|
|
21
|
+
* as they always were — this fixes what already had somewhere to go
|
|
22
|
+
* (title, risk tier, version), not what does not.
|
|
23
|
+
*/
|
|
1
24
|
export declare function runSopsPush(name: string, opts: {
|
|
2
25
|
dev?: boolean;
|
|
26
|
+
org?: boolean;
|
|
27
|
+
}): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* `intutic sops pull` — the round trip `push` never had: every workspace SOP
|
|
30
|
+
* on the control plane, written to `.intutic/sops/<slug-of-title>.md` with
|
|
31
|
+
* front matter reconstructed from the row (`title:`, `risk_tier:`,
|
|
32
|
+
* `version:`).
|
|
33
|
+
*
|
|
34
|
+
* Refuses to overwrite a file it did not itself write most recently, unless
|
|
35
|
+
* `--force` is passed. The check is a recorded hash, not a live diff: every
|
|
36
|
+
* file this command writes carries `content_hash: sha256(body)` in its own
|
|
37
|
+
* front matter (see `renderSopFile`), and a later pull compares that
|
|
38
|
+
* recorded value against the CURRENT local body's hash — not against the
|
|
39
|
+
* control plane's. A mismatch means a human edited the file since the last
|
|
40
|
+
* pull; a match means nothing local changed, so pulling fresh content from
|
|
41
|
+
* the plane (which may itself have changed) is safe. A file with no
|
|
42
|
+
* recorded hash at all — hand-authored, or only ever pushed — is treated as
|
|
43
|
+
* unverifiable and always requires `--force`, since overwriting a
|
|
44
|
+
* hand-written SOP the first time this command sees it would be the
|
|
45
|
+
* expensive direction to get wrong.
|
|
46
|
+
*/
|
|
47
|
+
export declare function runSopsPull(opts: {
|
|
48
|
+
dev?: boolean;
|
|
49
|
+
force?: boolean;
|
|
50
|
+
}): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* `intutic sops status` — drift between `.intutic/sops/*.md` and the
|
|
53
|
+
* control plane, read-only against the file system (the comparison itself
|
|
54
|
+
* never writes a local file).
|
|
55
|
+
*
|
|
56
|
+
* Matched by title, the same heuristic `pull` uses to name files: neither
|
|
57
|
+
* plane has a stable identifier the other side carries (a pushed file has
|
|
58
|
+
* no `sopId` until after the fact; a filename is not a title). A file
|
|
59
|
+
* `pull` has never touched carries no `content_hash:` marker, so this
|
|
60
|
+
* cannot tell "hand-authored, never pushed" apart from "hand-authored,
|
|
61
|
+
* edited after an old pull" — both report `diverged` rather than guessing.
|
|
62
|
+
*
|
|
63
|
+
* The comparison itself is computed entirely client-side, same as always.
|
|
64
|
+
* What's new: once computed, every matched (non-`push-only`) result is
|
|
65
|
+
* reported to `POST /api/v1/sops/git-drift-report`, best-effort — a live
|
|
66
|
+
* sync-daemon reconciliation loop is still not attempted here (still "a
|
|
67
|
+
* second project", per `apps/docs/guide/gitops-sops.md`), but a human or CI
|
|
68
|
+
* job running this command on a schedule now leaves the compliance probe
|
|
69
|
+
* (`sop_git_drift`) something to read instead of nothing. Report failures
|
|
70
|
+
* never fail the command — the read-only status output above is already
|
|
71
|
+
* complete and correct on its own.
|
|
72
|
+
*/
|
|
73
|
+
export declare function runSopsStatus(opts: {
|
|
74
|
+
dev?: boolean;
|
|
75
|
+
}): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* `intutic sops org-list` — every org-wide SOP floor for the caller's own
|
|
78
|
+
* org, the read side of `sops push <name> --org`.
|
|
79
|
+
*
|
|
80
|
+
* `GET /api/v1/workspace/org-sops` resolves `orgId` server-side from the
|
|
81
|
+
* caller's own workspace and answers a bare `{ data: [...] }`, not the
|
|
82
|
+
* `applyListEnvelope` shape most list endpoints use — so this reads
|
|
83
|
+
* `res.data` directly rather than `res.items`.
|
|
84
|
+
*/
|
|
85
|
+
export declare function runSopsOrgList(opts: {
|
|
86
|
+
dev?: boolean;
|
|
87
|
+
}): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* `intutic sops org-rm <orgSopId>` — soft-deletes an org-wide SOP floor.
|
|
90
|
+
*
|
|
91
|
+
* `DELETE /api/v1/workspace/org-sops/:orgSopId` requires OWNER/ADMIN on some
|
|
92
|
+
* active workspace under the org, and 404s on both "not found" and
|
|
93
|
+
* "you lack admin access" — deliberately (see `routes/orgSops.ts`), so this
|
|
94
|
+
* command cannot and does not try to distinguish the two.
|
|
95
|
+
*/
|
|
96
|
+
export declare function runSopsOrgRm(orgSopId: string, opts: {
|
|
97
|
+
dev?: boolean;
|
|
3
98
|
}): Promise<void>;
|
|
4
99
|
//# sourceMappingURL=sops.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sops.d.ts","sourceRoot":"","sources":["../../src/commands/sops.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sops.d.ts","sourceRoot":"","sources":["../../src/commands/sops.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoGrG;AAeD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+EzF;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgG1E;AAUD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB3E;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAa3F"}
|
package/dist/commands/sops.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import * as fs from 'node:fs/promises';
|
|
2
|
+
import { createHash } from 'node:crypto';
|
|
2
3
|
import { join } from 'node:path';
|
|
3
4
|
import { log } from '../lib/logger.js';
|
|
5
|
+
import { NOT_AUTHENTICATED } from '../lib/authMessages.js';
|
|
4
6
|
import { loadCredentials, loadConfig } from '../config/store.js';
|
|
5
7
|
import { resolveControlPlaneUrl } from '../config/paths.js';
|
|
6
8
|
import { createApiClient } from '../lib/api.js';
|
|
9
|
+
import { parseSopFile, titleFromFileName, renderSopFile, slugifyTitle } from '../lib/sopFrontMatter.js';
|
|
7
10
|
async function getClient(dev) {
|
|
8
11
|
const creds = await loadCredentials();
|
|
9
12
|
if (!creds) {
|
|
10
|
-
log.error(
|
|
13
|
+
log.error(NOT_AUTHENTICATED);
|
|
11
14
|
process.exit(1);
|
|
12
15
|
}
|
|
13
16
|
const config = loadConfig();
|
|
@@ -15,12 +18,34 @@ async function getClient(dev) {
|
|
|
15
18
|
const controlPlaneUrl = resolveControlPlaneUrl(devMode);
|
|
16
19
|
return createApiClient(controlPlaneUrl, creds.apiKey);
|
|
17
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* `intutic sops push <name>` — one control-plane SOP per file under
|
|
23
|
+
* `.intutic/sops/<name>/*.md`, each carrying that file's own declared
|
|
24
|
+
* `title:`/`risk_tier:`/`version:` front matter rather than the folder's
|
|
25
|
+
* name and two hardcoded constants.
|
|
26
|
+
*
|
|
27
|
+
* Previously concatenated every file in the folder into one blob under one
|
|
28
|
+
* title derived from the folder name, and always sent `risk_tier: 'LOW'`,
|
|
29
|
+
* `version: '1.0.0'` regardless of what the files declared — a folder of
|
|
30
|
+
* five SOPs at five different risk tiers pushed as one LOW-tier SOP whose
|
|
31
|
+
* title named none of them. Per-file push is what the DB plane can actually
|
|
32
|
+
* represent faithfully: `sop_registry` has no concept of "a folder of SOPs,"
|
|
33
|
+
* only individual rows.
|
|
34
|
+
*
|
|
35
|
+
* Front matter is stripped before the body is sent as `markdownContent` —
|
|
36
|
+
* `formatOrgSopConstraints` in `routes/judge.ts` interpolates that field
|
|
37
|
+
* verbatim into the judge's system prompt, and a `---\nrisk_tier: HIGH\n---`
|
|
38
|
+
* block in the middle of it is noise no judge prompt should carry.
|
|
39
|
+
* Declarative enforcement keys (`deny_tools:`, `requires_before:`, ...) have
|
|
40
|
+
* no `sop_registry` column, so they are lost from the DB-plane row exactly
|
|
41
|
+
* as they always were — this fixes what already had somewhere to go
|
|
42
|
+
* (title, risk tier, version), not what does not.
|
|
43
|
+
*/
|
|
18
44
|
export async function runSopsPush(name, opts) {
|
|
19
45
|
log.header(`Intutic — Push SOP: ${name}`);
|
|
20
46
|
const config = loadConfig();
|
|
21
47
|
const workspaceRoot = config?.workspaceRoot ?? process.cwd();
|
|
22
48
|
const sopsDir = join(workspaceRoot, '.intutic', 'sops', name);
|
|
23
|
-
// 1. Verify directory exists
|
|
24
49
|
try {
|
|
25
50
|
const stat = await fs.stat(sopsDir);
|
|
26
51
|
if (!stat.isDirectory()) {
|
|
@@ -32,57 +57,332 @@ export async function runSopsPush(name, opts) {
|
|
|
32
57
|
log.error(`Local SOP folder not found: ${sopsDir}`);
|
|
33
58
|
process.exit(1);
|
|
34
59
|
}
|
|
35
|
-
|
|
36
|
-
let markdownContent = '';
|
|
60
|
+
let mdFiles;
|
|
37
61
|
try {
|
|
38
|
-
|
|
39
|
-
const mdFiles = entries.filter((e) => e.endsWith('.md'));
|
|
62
|
+
mdFiles = (await fs.readdir(sopsDir)).filter((e) => e.endsWith('.md')).sort();
|
|
40
63
|
if (mdFiles.length === 0) {
|
|
41
64
|
log.error(`No markdown (.md) files found in local SOP folder: ${sopsDir}`);
|
|
42
65
|
process.exit(1);
|
|
43
66
|
}
|
|
44
|
-
for (const file of mdFiles) {
|
|
45
|
-
const content = await fs.readFile(join(sopsDir, file), 'utf-8');
|
|
46
|
-
markdownContent += content + '\n\n';
|
|
47
|
-
}
|
|
48
67
|
}
|
|
49
68
|
catch (err) {
|
|
50
|
-
log.error(`Error reading SOP files: ${err.message}`);
|
|
69
|
+
log.error(`Error reading SOP files: ${err instanceof Error ? err.message : String(err)}`);
|
|
51
70
|
process.exit(1);
|
|
52
71
|
}
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
72
|
+
const client = await getClient(opts.dev);
|
|
73
|
+
let failures = 0;
|
|
74
|
+
for (const file of mdFiles) {
|
|
75
|
+
const raw = await fs.readFile(join(sopsDir, file), 'utf-8');
|
|
76
|
+
const parsed = parseSopFile(raw);
|
|
77
|
+
if (!parsed.body) {
|
|
78
|
+
log.warn(`Skipping ${file}: empty after stripping front matter.`);
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
const title = parsed.title ?? titleFromFileName(file);
|
|
82
|
+
// --org pushes a mandatory org-wide floor (migration 139) instead of a
|
|
83
|
+
// workspace SOP -- the server derives orgId from the caller's own
|
|
84
|
+
// workspace; this CLI never resolves or supplies one.
|
|
85
|
+
if (opts.org) {
|
|
86
|
+
try {
|
|
87
|
+
const res = await client.post('/api/v1/workspace/org-sops', {
|
|
88
|
+
title,
|
|
89
|
+
markdown_content: parsed.body,
|
|
90
|
+
...(parsed.riskTier ? { risk_tier: parsed.riskTier } : {}),
|
|
91
|
+
});
|
|
92
|
+
if (res && res.orgSopId) {
|
|
93
|
+
log.info(`${file} → org-wide floor "${title}"`);
|
|
94
|
+
log.field('Org SOP ID', res.orgSopId);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
log.error(`${file}: failed to create org SOP on the control plane.`);
|
|
98
|
+
failures += 1;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
log.error(`${file}: failed to push org SOP: ${err instanceof Error ? err.message : String(err)}`);
|
|
103
|
+
failures += 1;
|
|
104
|
+
}
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
try {
|
|
108
|
+
const res = await client.post('/api/v1/sops', {
|
|
109
|
+
title,
|
|
110
|
+
markdown_content: parsed.body,
|
|
111
|
+
// Declared, not guessed: an unstated risk_tier lets the DB's own
|
|
112
|
+
// default (MEDIUM) apply rather than this CLI silently choosing
|
|
113
|
+
// LOW for every SOP that never mentioned one.
|
|
114
|
+
risk_tier: parsed.riskTier ?? 'MEDIUM',
|
|
115
|
+
// No front-matter equivalent exists for complexity — nothing in
|
|
116
|
+
// packages/proxy/src/sops.rs's front matter declares it.
|
|
117
|
+
complexity_tier: 'TIER_0',
|
|
118
|
+
...(parsed.version ? { version: parsed.version } : {}),
|
|
119
|
+
});
|
|
120
|
+
if (res && res.sopId) {
|
|
121
|
+
log.info(`${file} → workspace SOP "${title}"`);
|
|
122
|
+
log.field('SOP ID', res.sopId);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
log.error(`${file}: failed to create SOP on the control plane.`);
|
|
126
|
+
failures += 1;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
log.error(`${file}: failed to push SOP: ${err instanceof Error ? err.message : String(err)}`);
|
|
131
|
+
failures += 1;
|
|
132
|
+
}
|
|
57
133
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
134
|
+
log.info(`Pushed ${mdFiles.length - failures}/${mdFiles.length} file(s) from ${sopsDir}.`);
|
|
135
|
+
if (failures > 0)
|
|
136
|
+
process.exit(1);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* `intutic sops pull` — the round trip `push` never had: every workspace SOP
|
|
140
|
+
* on the control plane, written to `.intutic/sops/<slug-of-title>.md` with
|
|
141
|
+
* front matter reconstructed from the row (`title:`, `risk_tier:`,
|
|
142
|
+
* `version:`).
|
|
143
|
+
*
|
|
144
|
+
* Refuses to overwrite a file it did not itself write most recently, unless
|
|
145
|
+
* `--force` is passed. The check is a recorded hash, not a live diff: every
|
|
146
|
+
* file this command writes carries `content_hash: sha256(body)` in its own
|
|
147
|
+
* front matter (see `renderSopFile`), and a later pull compares that
|
|
148
|
+
* recorded value against the CURRENT local body's hash — not against the
|
|
149
|
+
* control plane's. A mismatch means a human edited the file since the last
|
|
150
|
+
* pull; a match means nothing local changed, so pulling fresh content from
|
|
151
|
+
* the plane (which may itself have changed) is safe. A file with no
|
|
152
|
+
* recorded hash at all — hand-authored, or only ever pushed — is treated as
|
|
153
|
+
* unverifiable and always requires `--force`, since overwriting a
|
|
154
|
+
* hand-written SOP the first time this command sees it would be the
|
|
155
|
+
* expensive direction to get wrong.
|
|
156
|
+
*/
|
|
157
|
+
export async function runSopsPull(opts) {
|
|
158
|
+
log.header('Intutic — Pull SOPs');
|
|
159
|
+
const config = loadConfig();
|
|
160
|
+
const workspaceRoot = config?.workspaceRoot ?? process.cwd();
|
|
161
|
+
const sopsDir = join(workspaceRoot, '.intutic', 'sops');
|
|
64
162
|
const client = await getClient(opts.dev);
|
|
163
|
+
let items;
|
|
65
164
|
try {
|
|
66
|
-
const res = await client.
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
165
|
+
const res = await client.get('/api/v1/sops?limit=100');
|
|
166
|
+
items = res.items ?? [];
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
log.error(`Failed to list SOPs: ${err instanceof Error ? err.message : String(err)}`);
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
if (items.length === 0) {
|
|
173
|
+
log.info('No SOPs found in this workspace.');
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
await fs.mkdir(sopsDir, { recursive: true });
|
|
177
|
+
let written = 0;
|
|
178
|
+
let conflicts = 0;
|
|
179
|
+
const seenSlugs = new Set();
|
|
180
|
+
for (const item of items) {
|
|
181
|
+
let detail;
|
|
182
|
+
try {
|
|
183
|
+
detail = await client.get(`/api/v1/sops/${item.sopId}`);
|
|
184
|
+
}
|
|
185
|
+
catch (err) {
|
|
186
|
+
log.warn(`${item.title}: failed to fetch content, skipping (${err instanceof Error ? err.message : String(err)})`);
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
if (!detail.markdownContent) {
|
|
190
|
+
log.warn(`${item.title}: no content on the control plane, skipping.`);
|
|
191
|
+
continue;
|
|
192
|
+
}
|
|
193
|
+
// Two SOPs with the same title collide on the same file. Rather than
|
|
194
|
+
// silently overwriting one with the other, the second gets its sopId
|
|
195
|
+
// suffixed — a visible, if ugly, signal beats a quiet data loss.
|
|
196
|
+
let slug = slugifyTitle(detail.title);
|
|
197
|
+
if (seenSlugs.has(slug))
|
|
198
|
+
slug = `${slug}-${detail.sopId.slice(-6)}`;
|
|
199
|
+
seenSlugs.add(slug);
|
|
200
|
+
const filePath = join(sopsDir, `${slug}.md`);
|
|
201
|
+
const rendered = renderSopFile({
|
|
202
|
+
title: detail.title,
|
|
203
|
+
riskTier: detail.riskTier,
|
|
204
|
+
version: detail.version,
|
|
205
|
+
body: detail.markdownContent.trim(),
|
|
72
206
|
});
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
207
|
+
const existing = await fs.readFile(filePath, 'utf-8').catch(() => null);
|
|
208
|
+
if (existing !== null && !opts.force) {
|
|
209
|
+
const parsedExisting = parseSopFile(existing);
|
|
210
|
+
const actualLocalHash = createHash('sha256').update(parsedExisting.body, 'utf8').digest('hex');
|
|
211
|
+
const dirty = parsedExisting.contentHash === null || parsedExisting.contentHash !== actualLocalHash;
|
|
212
|
+
if (dirty) {
|
|
213
|
+
log.warn(`${filePath}: locally modified (or never pulled before) — refusing to overwrite. Use --force to pull anyway.`);
|
|
214
|
+
conflicts += 1;
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
await fs.writeFile(filePath, rendered, 'utf-8');
|
|
219
|
+
written += 1;
|
|
220
|
+
log.info(`${filePath} ← "${detail.title}"`);
|
|
221
|
+
}
|
|
222
|
+
log.info(`Pulled ${written} file(s) into ${sopsDir}${conflicts > 0 ? `, ${conflicts} conflict(s) left untouched` : ''}.`);
|
|
223
|
+
if (conflicts > 0) {
|
|
224
|
+
log.info('Re-run with --force to overwrite locally-modified files.');
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* `intutic sops status` — drift between `.intutic/sops/*.md` and the
|
|
229
|
+
* control plane, read-only against the file system (the comparison itself
|
|
230
|
+
* never writes a local file).
|
|
231
|
+
*
|
|
232
|
+
* Matched by title, the same heuristic `pull` uses to name files: neither
|
|
233
|
+
* plane has a stable identifier the other side carries (a pushed file has
|
|
234
|
+
* no `sopId` until after the fact; a filename is not a title). A file
|
|
235
|
+
* `pull` has never touched carries no `content_hash:` marker, so this
|
|
236
|
+
* cannot tell "hand-authored, never pushed" apart from "hand-authored,
|
|
237
|
+
* edited after an old pull" — both report `diverged` rather than guessing.
|
|
238
|
+
*
|
|
239
|
+
* The comparison itself is computed entirely client-side, same as always.
|
|
240
|
+
* What's new: once computed, every matched (non-`push-only`) result is
|
|
241
|
+
* reported to `POST /api/v1/sops/git-drift-report`, best-effort — a live
|
|
242
|
+
* sync-daemon reconciliation loop is still not attempted here (still "a
|
|
243
|
+
* second project", per `apps/docs/guide/gitops-sops.md`), but a human or CI
|
|
244
|
+
* job running this command on a schedule now leaves the compliance probe
|
|
245
|
+
* (`sop_git_drift`) something to read instead of nothing. Report failures
|
|
246
|
+
* never fail the command — the read-only status output above is already
|
|
247
|
+
* complete and correct on its own.
|
|
248
|
+
*/
|
|
249
|
+
export async function runSopsStatus(opts) {
|
|
250
|
+
log.header('Intutic — SOP Drift Status');
|
|
251
|
+
const config = loadConfig();
|
|
252
|
+
const workspaceRoot = config?.workspaceRoot ?? process.cwd();
|
|
253
|
+
const sopsDir = join(workspaceRoot, '.intutic', 'sops');
|
|
254
|
+
let localFiles;
|
|
255
|
+
try {
|
|
256
|
+
// `guardrail-*.md` are written by `intutic guardrails pull` and have no
|
|
257
|
+
// control-plane SOP to drift against; listing them here would report every
|
|
258
|
+
// one as push-only.
|
|
259
|
+
localFiles = (await fs.readdir(sopsDir)).filter((f) => f.endsWith('.md') && !f.startsWith('guardrail-')).sort();
|
|
260
|
+
}
|
|
261
|
+
catch {
|
|
262
|
+
log.info(`No local SOPs directory at ${sopsDir}.`);
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
if (localFiles.length === 0) {
|
|
266
|
+
log.info(`No .md files in ${sopsDir}.`);
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
const client = await getClient(opts.dev);
|
|
270
|
+
let remoteByTitle;
|
|
271
|
+
try {
|
|
272
|
+
const res = await client.get('/api/v1/sops?limit=100');
|
|
273
|
+
remoteByTitle = new Map((res.items ?? []).map((r) => [r.title, { sopId: r.sopId, contentHash: r.contentHash }]));
|
|
274
|
+
}
|
|
275
|
+
catch (err) {
|
|
276
|
+
log.error(`Failed to fetch workspace SOPs: ${err instanceof Error ? err.message : String(err)}`);
|
|
277
|
+
process.exit(1);
|
|
278
|
+
}
|
|
279
|
+
const counts = { 'in-sync': 0, 'local-ahead': 0, 'remote-ahead': 0, diverged: 0, 'push-only': 0 };
|
|
280
|
+
const driftReport = [];
|
|
281
|
+
for (const file of localFiles) {
|
|
282
|
+
const raw = await fs.readFile(join(sopsDir, file), 'utf-8');
|
|
283
|
+
const parsed = parseSopFile(raw);
|
|
284
|
+
const title = parsed.title ?? titleFromFileName(file);
|
|
285
|
+
const localHash = createHash('sha256').update(parsed.body, 'utf8').digest('hex');
|
|
286
|
+
const remote = remoteByTitle.get(title);
|
|
287
|
+
if (!remote) {
|
|
288
|
+
counts['push-only'] += 1;
|
|
289
|
+
log.field(file, `push-only — no SOP titled "${title}" on the control plane yet`);
|
|
290
|
+
continue;
|
|
291
|
+
}
|
|
292
|
+
const remoteHash = remote.contentHash;
|
|
293
|
+
let status;
|
|
294
|
+
if (remoteHash && localHash === remoteHash) {
|
|
295
|
+
status = 'in-sync';
|
|
296
|
+
}
|
|
297
|
+
else if (parsed.contentHash === localHash) {
|
|
298
|
+
// Unedited since the last pull, but the local hash no longer matches
|
|
299
|
+
// the control plane — the control plane moved, this file did not.
|
|
300
|
+
status = 'remote-ahead';
|
|
301
|
+
}
|
|
302
|
+
else if (parsed.contentHash !== null) {
|
|
303
|
+
// Had a recorded pull hash, and the file no longer matches it — a
|
|
304
|
+
// human edited it since.
|
|
305
|
+
status = 'local-ahead';
|
|
77
306
|
}
|
|
78
307
|
else {
|
|
79
|
-
|
|
80
|
-
|
|
308
|
+
// No pull marker at all, and it does not match the control plane
|
|
309
|
+
// either: cannot tell "never pulled" apart from "edited since a very
|
|
310
|
+
// old pull" from local information alone.
|
|
311
|
+
status = 'diverged';
|
|
312
|
+
}
|
|
313
|
+
counts[status] += 1;
|
|
314
|
+
driftReport.push({ sop_id: remote.sopId, status });
|
|
315
|
+
const label = {
|
|
316
|
+
'in-sync': 'in sync',
|
|
317
|
+
'local-ahead': 'locally modified — `sops push` to publish',
|
|
318
|
+
'remote-ahead': 'control plane has newer content — `sops pull` to fetch',
|
|
319
|
+
diverged: 'diverges from the control plane, and was never (verifiably) pulled',
|
|
320
|
+
'push-only': '',
|
|
321
|
+
}[status];
|
|
322
|
+
log.field(file, `${status} — ${label}`);
|
|
323
|
+
}
|
|
324
|
+
log.info(`${counts['in-sync']} in sync, ${counts['local-ahead']} locally modified, ` +
|
|
325
|
+
`${counts['remote-ahead']} behind, ${counts.diverged} diverged, ${counts['push-only']} push-only.`);
|
|
326
|
+
if (driftReport.length > 0) {
|
|
327
|
+
try {
|
|
328
|
+
await client.post('/api/v1/sops/git-drift-report', { results: driftReport });
|
|
81
329
|
}
|
|
330
|
+
catch {
|
|
331
|
+
// Non-fatal: the status output above is already complete on its own,
|
|
332
|
+
// and a report the control plane never sees just leaves the
|
|
333
|
+
// `sop_git_drift` probe with stale (or absent) data until the next
|
|
334
|
+
// successful run — never a reason to fail this command.
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* `intutic sops org-list` — every org-wide SOP floor for the caller's own
|
|
340
|
+
* org, the read side of `sops push <name> --org`.
|
|
341
|
+
*
|
|
342
|
+
* `GET /api/v1/workspace/org-sops` resolves `orgId` server-side from the
|
|
343
|
+
* caller's own workspace and answers a bare `{ data: [...] }`, not the
|
|
344
|
+
* `applyListEnvelope` shape most list endpoints use — so this reads
|
|
345
|
+
* `res.data` directly rather than `res.items`.
|
|
346
|
+
*/
|
|
347
|
+
export async function runSopsOrgList(opts) {
|
|
348
|
+
log.header('Intutic — Org-Wide SOPs');
|
|
349
|
+
const client = await getClient(opts.dev);
|
|
350
|
+
let items;
|
|
351
|
+
try {
|
|
352
|
+
const res = await client.get('/api/v1/workspace/org-sops');
|
|
353
|
+
items = res.data ?? [];
|
|
354
|
+
}
|
|
355
|
+
catch (err) {
|
|
356
|
+
log.error(`Failed to list org SOPs: ${err instanceof Error ? err.message : String(err)}`);
|
|
357
|
+
process.exit(1);
|
|
358
|
+
}
|
|
359
|
+
if (items.length === 0) {
|
|
360
|
+
log.info('No org-wide SOPs found for this org.');
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
for (const item of items) {
|
|
364
|
+
log.field(item.title, `${item.orgSopId} — risk_tier: ${item.riskTier}`);
|
|
365
|
+
}
|
|
366
|
+
log.info(`${items.length} org-wide SOP(s).`);
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* `intutic sops org-rm <orgSopId>` — soft-deletes an org-wide SOP floor.
|
|
370
|
+
*
|
|
371
|
+
* `DELETE /api/v1/workspace/org-sops/:orgSopId` requires OWNER/ADMIN on some
|
|
372
|
+
* active workspace under the org, and 404s on both "not found" and
|
|
373
|
+
* "you lack admin access" — deliberately (see `routes/orgSops.ts`), so this
|
|
374
|
+
* command cannot and does not try to distinguish the two.
|
|
375
|
+
*/
|
|
376
|
+
export async function runSopsOrgRm(orgSopId, opts) {
|
|
377
|
+
log.header(`Intutic — Remove Org SOP: ${orgSopId}`);
|
|
378
|
+
const client = await getClient(opts.dev);
|
|
379
|
+
try {
|
|
380
|
+
await client.del(`/api/v1/workspace/org-sops/${orgSopId}`);
|
|
82
381
|
}
|
|
83
382
|
catch (err) {
|
|
84
|
-
log.error(`Failed to
|
|
383
|
+
log.error(`Failed to remove org SOP: ${err instanceof Error ? err.message : String(err)}`);
|
|
85
384
|
process.exit(1);
|
|
86
385
|
}
|
|
386
|
+
log.info(`Removed org SOP ${orgSopId}.`);
|
|
87
387
|
}
|
|
88
388
|
//# sourceMappingURL=sops.js.map
|