@tiangong-lca/cli 0.1.8 → 0.1.10

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 (77) hide show
  1. package/README.md +18 -5
  2. package/assets/runtime/cli-runtime-descriptor.schema.json +138 -0
  3. package/assets/runtime/cli-runtime-expectation.schema.json +38 -0
  4. package/assets/runtime/runtime-bootstrap-lock.schema.json +254 -0
  5. package/assets/runtime/runtime-command-result.schema.json +95 -0
  6. package/assets/runtime/runtime-manifest.schema.json +380 -0
  7. package/dist/src/cli.d.ts +2 -0
  8. package/dist/src/cli.js +48 -2
  9. package/dist/src/cli.js.map +1 -1
  10. package/dist/src/lib/dataset-import-lca.js +2 -2
  11. package/dist/src/lib/dataset-import-lca.js.map +1 -1
  12. package/dist/src/lib/dataset-support-cache.d.ts +48 -0
  13. package/dist/src/lib/dataset-support-cache.js +265 -0
  14. package/dist/src/lib/dataset-support-cache.js.map +1 -0
  15. package/dist/src/lib/runtime/archive-writer.d.ts +7 -0
  16. package/dist/src/lib/runtime/archive-writer.js +89 -0
  17. package/dist/src/lib/runtime/archive-writer.js.map +1 -0
  18. package/dist/src/lib/runtime/archive.d.ts +2 -0
  19. package/dist/src/lib/runtime/archive.js +122 -0
  20. package/dist/src/lib/runtime/archive.js.map +1 -0
  21. package/dist/src/lib/runtime/command.d.ts +8 -0
  22. package/dist/src/lib/runtime/command.js +57 -0
  23. package/dist/src/lib/runtime/command.js.map +1 -0
  24. package/dist/src/lib/runtime/descriptor.d.ts +11 -0
  25. package/dist/src/lib/runtime/descriptor.js +126 -0
  26. package/dist/src/lib/runtime/descriptor.js.map +1 -0
  27. package/dist/src/lib/runtime/download.d.ts +9 -0
  28. package/dist/src/lib/runtime/download.js +118 -0
  29. package/dist/src/lib/runtime/download.js.map +1 -0
  30. package/dist/src/lib/runtime/exec-command.d.ts +7 -0
  31. package/dist/src/lib/runtime/exec-command.js +83 -0
  32. package/dist/src/lib/runtime/exec-command.js.map +1 -0
  33. package/dist/src/lib/runtime/execute.d.ts +11 -0
  34. package/dist/src/lib/runtime/execute.js +125 -0
  35. package/dist/src/lib/runtime/execute.js.map +1 -0
  36. package/dist/src/lib/runtime/files.d.ts +7 -0
  37. package/dist/src/lib/runtime/files.js +91 -0
  38. package/dist/src/lib/runtime/files.js.map +1 -0
  39. package/dist/src/lib/runtime/host.d.ts +8 -0
  40. package/dist/src/lib/runtime/host.js +37 -0
  41. package/dist/src/lib/runtime/host.js.map +1 -0
  42. package/dist/src/lib/runtime/leases.d.ts +12 -0
  43. package/dist/src/lib/runtime/leases.js +72 -0
  44. package/dist/src/lib/runtime/leases.js.map +1 -0
  45. package/dist/src/lib/runtime/managed-command.d.ts +6 -0
  46. package/dist/src/lib/runtime/managed-command.js +99 -0
  47. package/dist/src/lib/runtime/managed-command.js.map +1 -0
  48. package/dist/src/lib/runtime/manager.d.ts +33 -0
  49. package/dist/src/lib/runtime/manager.js +196 -0
  50. package/dist/src/lib/runtime/manager.js.map +1 -0
  51. package/dist/src/lib/runtime/manifest-types.d.ts +73 -0
  52. package/dist/src/lib/runtime/manifest-types.js +4 -0
  53. package/dist/src/lib/runtime/manifest-types.js.map +1 -0
  54. package/dist/src/lib/runtime/manifest-values.d.ts +15 -0
  55. package/dist/src/lib/runtime/manifest-values.js +124 -0
  56. package/dist/src/lib/runtime/manifest-values.js.map +1 -0
  57. package/dist/src/lib/runtime/manifest.d.ts +7 -0
  58. package/dist/src/lib/runtime/manifest.js +220 -0
  59. package/dist/src/lib/runtime/manifest.js.map +1 -0
  60. package/dist/src/lib/runtime/process.d.ts +3 -0
  61. package/dist/src/lib/runtime/process.js +55 -0
  62. package/dist/src/lib/runtime/process.js.map +1 -0
  63. package/dist/src/lib/runtime/storage.d.ts +8 -0
  64. package/dist/src/lib/runtime/storage.js +142 -0
  65. package/dist/src/lib/runtime/storage.js.map +1 -0
  66. package/dist/src/lib/runtime/types.d.ts +45 -0
  67. package/dist/src/lib/runtime/types.js +9 -0
  68. package/dist/src/lib/runtime/types.js.map +1 -0
  69. package/dist/src/lib/supabase-data-api-contract.d.ts +4 -4
  70. package/dist/src/lib/supabase-data-api-contract.js +2 -0
  71. package/dist/src/lib/supabase-data-api-contract.js.map +1 -1
  72. package/dist/src/main.js +13 -1
  73. package/dist/src/main.js.map +1 -1
  74. package/dist/src/runtime.d.ts +15 -0
  75. package/dist/src/runtime.js +22 -0
  76. package/dist/src/runtime.js.map +1 -0
  77. package/package.json +8 -2
@@ -7,14 +7,14 @@ export declare const CORE_PUBLIC_RELATIONS: readonly ['contacts', 'flowpropertie
7
7
  export type CorePublicRelation = (typeof CORE_PUBLIC_RELATIONS)[number];
8
8
  export declare const DATA_API_RELATION_CONSUMERS: {
9
9
  readonly contacts: readonly ["src/lib/dataset-save-draft-run.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/process-refresh-references.ts", "src/lib/dataset-maintenance-clear-account.ts"];
10
- readonly flowproperties: readonly ["src/lib/dataset-save-draft-run.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/dataset-maintenance-flow-identity-capture.ts", "src/lib/process-refresh-references.ts"];
10
+ readonly flowproperties: readonly ["src/lib/dataset-support-cache.ts", "src/lib/dataset-save-draft-run.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/dataset-maintenance-flow-identity-capture.ts", "src/lib/process-refresh-references.ts"];
11
11
  readonly flows: readonly ["src/lib/flow-read.ts", "src/lib/flow-list.ts", "src/lib/flow-publish-version.ts", "src/lib/dataset-save-draft-run.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/dataset-maintenance-flow-identity-capture.ts", "src/lib/process-refresh-references.ts", "src/lib/dataset-maintenance-clear-account.ts"];
12
12
  readonly ilcd: readonly [];
13
13
  readonly lciamethods: readonly ["src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/process-refresh-references.ts"];
14
14
  readonly lifecyclemodels: readonly ["src/lib/lifecyclemodel-bundle-save.ts", "src/lib/process-dedup-review.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/supabase-json-ordered-write.ts", "src/lib/dataset-maintenance-clear-account.ts"];
15
15
  readonly processes: readonly ["src/lib/process-get.ts", "src/lib/process-list.ts", "src/lib/process-save-draft.ts", "src/lib/process-scope-statistics.ts", "src/lib/process-dedup-review.ts", "src/lib/process-refresh-references.ts", "src/lib/dataset-save-draft-run.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/supabase-json-ordered-write.ts", "src/lib/supabase-rest.ts", "src/lib/dataset-maintenance-clear-account.ts"];
16
16
  readonly sources: readonly ["src/lib/dataset-save-draft-run.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/supabase-json-ordered-write.ts", "src/lib/process-refresh-references.ts", "src/lib/dataset-maintenance-clear-account.ts"];
17
- readonly unitgroups: readonly ["src/lib/dataset-save-draft-run.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/dataset-maintenance-flow-identity-capture.ts", "src/lib/process-refresh-references.ts"];
17
+ readonly unitgroups: readonly ["src/lib/dataset-support-cache.ts", "src/lib/dataset-save-draft-run.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/dataset-maintenance-flow-identity-capture.ts", "src/lib/process-refresh-references.ts"];
18
18
  };
19
19
  export declare const DATA_API_RPC_TARGETS: {
20
20
  readonly cmd_dataset_alias_execution_admit_guarded: {
@@ -127,14 +127,14 @@ export declare const DATA_API_CONTRACT: {
127
127
  readonly corePublicRelations: readonly ["contacts", "flowproperties", "flows", "ilcd", "lciamethods", "lifecyclemodels", "processes", "sources", "unitgroups"];
128
128
  readonly relationConsumers: {
129
129
  readonly contacts: readonly ["src/lib/dataset-save-draft-run.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/process-refresh-references.ts", "src/lib/dataset-maintenance-clear-account.ts"];
130
- readonly flowproperties: readonly ["src/lib/dataset-save-draft-run.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/dataset-maintenance-flow-identity-capture.ts", "src/lib/process-refresh-references.ts"];
130
+ readonly flowproperties: readonly ["src/lib/dataset-support-cache.ts", "src/lib/dataset-save-draft-run.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/dataset-maintenance-flow-identity-capture.ts", "src/lib/process-refresh-references.ts"];
131
131
  readonly flows: readonly ["src/lib/flow-read.ts", "src/lib/flow-list.ts", "src/lib/flow-publish-version.ts", "src/lib/dataset-save-draft-run.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/dataset-maintenance-flow-identity-capture.ts", "src/lib/process-refresh-references.ts", "src/lib/dataset-maintenance-clear-account.ts"];
132
132
  readonly ilcd: readonly [];
133
133
  readonly lciamethods: readonly ["src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/process-refresh-references.ts"];
134
134
  readonly lifecyclemodels: readonly ["src/lib/lifecyclemodel-bundle-save.ts", "src/lib/process-dedup-review.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/supabase-json-ordered-write.ts", "src/lib/dataset-maintenance-clear-account.ts"];
135
135
  readonly processes: readonly ["src/lib/process-get.ts", "src/lib/process-list.ts", "src/lib/process-save-draft.ts", "src/lib/process-scope-statistics.ts", "src/lib/process-dedup-review.ts", "src/lib/process-refresh-references.ts", "src/lib/dataset-save-draft-run.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/supabase-json-ordered-write.ts", "src/lib/supabase-rest.ts", "src/lib/dataset-maintenance-clear-account.ts"];
136
136
  readonly sources: readonly ["src/lib/dataset-save-draft-run.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/supabase-json-ordered-write.ts", "src/lib/process-refresh-references.ts", "src/lib/dataset-maintenance-clear-account.ts"];
137
- readonly unitgroups: readonly ["src/lib/dataset-save-draft-run.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/dataset-maintenance-flow-identity-capture.ts", "src/lib/process-refresh-references.ts"];
137
+ readonly unitgroups: readonly ["src/lib/dataset-support-cache.ts", "src/lib/dataset-save-draft-run.ts", "src/lib/dataset-remote-verify.ts", "src/lib/dataset-maintenance-remote.ts", "src/lib/dataset-maintenance-flow-identity-capture.ts", "src/lib/process-refresh-references.ts"];
138
138
  };
139
139
  readonly views: readonly [];
140
140
  readonly rpcs: {
@@ -23,6 +23,7 @@ export const DATA_API_RELATION_CONSUMERS = {
23
23
  'src/lib/dataset-maintenance-clear-account.ts',
24
24
  ],
25
25
  flowproperties: [
26
+ 'src/lib/dataset-support-cache.ts',
26
27
  'src/lib/dataset-save-draft-run.ts',
27
28
  'src/lib/dataset-remote-verify.ts',
28
29
  'src/lib/dataset-maintenance-remote.ts',
@@ -77,6 +78,7 @@ export const DATA_API_RELATION_CONSUMERS = {
77
78
  'src/lib/dataset-maintenance-clear-account.ts',
78
79
  ],
79
80
  unitgroups: [
81
+ 'src/lib/dataset-support-cache.ts',
80
82
  'src/lib/dataset-save-draft-run.ts',
81
83
  'src/lib/dataset-remote-verify.ts',
82
84
  'src/lib/dataset-maintenance-remote.ts',
@@ -1 +1 @@
1
- {"version":3,"file":"supabase-data-api-contract.js","sourceRoot":"","sources":["../../../src/lib/supabase-data-api-contract.ts"],"names":[],"mappings":"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","sourcesContent":["import { CliError } from './errors.js';\nimport { DATA_API_RPC_REPLAY_CLASSIFICATION } from './supabase-data-api-replay.js';\nexport {\n DATA_API_RPC_REPLAY_CLASSIFICATION,\n isDataApiAuthRefreshReplaySafe,\n} from './supabase-data-api-replay.js';\n\nexport const DATA_API_PROFILE_ENV = 'TIANGONG_LCA_DATA_API_PROFILE';\nexport const DATA_API_PROFILES = ['api-contract-v1'] as const;\nexport type DataApiProfile = (typeof DATA_API_PROFILES)[number];\nexport type DataApiRole = 'anon' | 'authenticated' | 'service_role';\n\nexport const CORE_PUBLIC_RELATIONS = [\n 'contacts',\n 'flowproperties',\n 'flows',\n 'ilcd',\n 'lciamethods',\n 'lifecyclemodels',\n 'processes',\n 'sources',\n 'unitgroups',\n] as const;\nexport type CorePublicRelation = (typeof CORE_PUBLIC_RELATIONS)[number];\n\nexport const DATA_API_RELATION_CONSUMERS = {\n contacts: [\n 'src/lib/dataset-save-draft-run.ts',\n 'src/lib/dataset-remote-verify.ts',\n 'src/lib/dataset-maintenance-remote.ts',\n 'src/lib/process-refresh-references.ts',\n 'src/lib/dataset-maintenance-clear-account.ts',\n ],\n flowproperties: [\n 'src/lib/dataset-save-draft-run.ts',\n 'src/lib/dataset-remote-verify.ts',\n 'src/lib/dataset-maintenance-remote.ts',\n 'src/lib/dataset-maintenance-flow-identity-capture.ts',\n 'src/lib/process-refresh-references.ts',\n ],\n flows: [\n 'src/lib/flow-read.ts',\n 'src/lib/flow-list.ts',\n 'src/lib/flow-publish-version.ts',\n 'src/lib/dataset-save-draft-run.ts',\n 'src/lib/dataset-remote-verify.ts',\n 'src/lib/dataset-maintenance-remote.ts',\n 'src/lib/dataset-maintenance-flow-identity-capture.ts',\n 'src/lib/process-refresh-references.ts',\n 'src/lib/dataset-maintenance-clear-account.ts',\n ],\n ilcd: [],\n lciamethods: [\n 'src/lib/dataset-remote-verify.ts',\n 'src/lib/dataset-maintenance-remote.ts',\n 'src/lib/process-refresh-references.ts',\n ],\n lifecyclemodels: [\n 'src/lib/lifecyclemodel-bundle-save.ts',\n 'src/lib/process-dedup-review.ts',\n 'src/lib/dataset-remote-verify.ts',\n 'src/lib/dataset-maintenance-remote.ts',\n 'src/lib/supabase-json-ordered-write.ts',\n 'src/lib/dataset-maintenance-clear-account.ts',\n ],\n processes: [\n 'src/lib/process-get.ts',\n 'src/lib/process-list.ts',\n 'src/lib/process-save-draft.ts',\n 'src/lib/process-scope-statistics.ts',\n 'src/lib/process-dedup-review.ts',\n 'src/lib/process-refresh-references.ts',\n 'src/lib/dataset-save-draft-run.ts',\n 'src/lib/dataset-remote-verify.ts',\n 'src/lib/dataset-maintenance-remote.ts',\n 'src/lib/supabase-json-ordered-write.ts',\n 'src/lib/supabase-rest.ts',\n 'src/lib/dataset-maintenance-clear-account.ts',\n ],\n sources: [\n 'src/lib/dataset-save-draft-run.ts',\n 'src/lib/dataset-remote-verify.ts',\n 'src/lib/dataset-maintenance-remote.ts',\n 'src/lib/supabase-json-ordered-write.ts',\n 'src/lib/process-refresh-references.ts',\n 'src/lib/dataset-maintenance-clear-account.ts',\n ],\n unitgroups: [\n 'src/lib/dataset-save-draft-run.ts',\n 'src/lib/dataset-remote-verify.ts',\n 'src/lib/dataset-maintenance-remote.ts',\n 'src/lib/dataset-maintenance-flow-identity-capture.ts',\n 'src/lib/process-refresh-references.ts',\n ],\n} as const satisfies Record<CorePublicRelation, readonly string[]>;\n\ntype RpcTarget = {\n targetSchema: 'api';\n signature: string;\n};\n\nexport const DATA_API_RPC_TARGETS = {\n cmd_dataset_alias_execution_admit_guarded: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_alias_execution_admit_guarded(p_request jsonb)',\n },\n cmd_dataset_alias_execution_gate_guarded: {\n targetSchema: 'api',\n signature:\n 'api.cmd_dataset_alias_execution_gate_guarded(p_request_id uuid, p_preflight_token text, p_gate_name text)',\n },\n cmd_dataset_alias_execution_preflight_guarded: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_alias_execution_preflight_guarded(p_request jsonb)',\n },\n cmd_dataset_alias_execution_read: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_alias_execution_read(p_request_id uuid)',\n },\n cmd_dataset_delete: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_delete(p_table text, p_id uuid, p_version text, p_audit jsonb)',\n },\n cmd_dataset_derivative_rebuild_plan_guarded: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_derivative_rebuild_plan_guarded(p_plan jsonb)',\n },\n cmd_dataset_derivative_rebuild_read: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_derivative_rebuild_read(p_request_id uuid)',\n },\n cmd_dataset_derivative_rebuild_snapshot: {\n targetSchema: 'api',\n signature:\n 'api.cmd_dataset_derivative_rebuild_snapshot(p_table text, p_id uuid, p_version text)',\n },\n cmd_dataset_flow_identity_capture_attest_guarded: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_flow_identity_capture_attest_guarded(p_request jsonb)',\n },\n cmd_dataset_flow_identity_process_rewrite_guarded: {\n targetSchema: 'api',\n signature:\n 'api.cmd_dataset_flow_identity_process_rewrite_guarded(p_scope_id uuid, p_request jsonb, p_authorization jsonb)',\n },\n cmd_dataset_flow_identity_scope_finalize_guarded: {\n targetSchema: 'api',\n signature:\n 'api.cmd_dataset_flow_identity_scope_finalize_guarded(p_scope_id uuid, p_request jsonb, p_authorization jsonb)',\n },\n cmd_dataset_flow_identity_scope_lookup: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_flow_identity_scope_lookup(p_request jsonb)',\n },\n cmd_dataset_flow_identity_scope_preflight_guarded: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_flow_identity_scope_preflight_guarded(p_request jsonb)',\n },\n cmd_dataset_flow_identity_scope_read: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_flow_identity_scope_read(p_scope_id uuid)',\n },\n cmd_dataset_flow_identity_scope_recover_guarded: {\n targetSchema: 'api',\n signature:\n 'api.cmd_dataset_flow_identity_scope_recover_guarded(p_scope_id uuid, p_request jsonb)',\n },\n cmd_dataset_save_draft: {\n targetSchema: 'api',\n signature:\n 'api.cmd_dataset_save_draft(p_table text, p_id uuid, p_version text, p_json_ordered jsonb, p_model_id uuid, p_rule_verification boolean, p_audit jsonb, p_model_version text)',\n },\n} as const satisfies Record<string, RpcTarget>;\n\nexport type DataApiRpc = keyof typeof DATA_API_RPC_TARGETS;\n\nexport const DATA_API_CONTRACT = {\n schemaVersion: 'tiangong-lca-cli.data-api-contract.v1',\n databaseContract: {\n repository: 'tiangong-lca/database-engine',\n databaseCommit: '1320dcc506fe37af6b625ae30fbe0bec38cf87c6',\n migrationHead: '20260902104500',\n migrationSetGitTreeSha: '88e212220c0037cee673d0522340d3cca5e791dd',\n contractMigrations: {\n fullSchemaCutover: {\n path: 'supabase/migrations/20260805130000_full_schema_cutover.sql',\n sha256: 'd409022fb25d9313d17b0f76216ca6e4abbfce7d6c5b6e74c869314d1c7e5afb',\n },\n apiContractClosure: {\n path: 'supabase/migrations/20260806160000_api_contract_closure.sql',\n sha256: 'e0e7aec8e03d70c60ee0d5c2b332ce73fa7b4b229725c9a9fcb0e1a1d7e8c511',\n },\n processModelVersionContract: {\n path: 'supabase/migrations/20260902100000_process_model_version_contract.sql',\n sha256: '99cbaf474098281ea8c57fcef093174d0ef78a18300f133dd8cc6f9e59a4a29b',\n },\n processSaveDraftModelVersion: {\n path: 'supabase/migrations/20260902103509_add_process_model_version_to_dataset_save_draft.sql',\n sha256: 'ca93f3279673e292803bd8c477aec76b772c7246e16114808d31e64994037723',\n },\n migrationHead: {\n path: 'supabase/migrations/20260902104500_use_exact_model_version_in_review_ownership.sql',\n sha256: '538ec3001f7683b57817e4a89973ded127522ce94521720ed583de99711bbe60',\n },\n },\n contractReady: true,\n snapshotRole: 'frozen-process-model-version-contract',\n provenanceIssue: 'tiangong-lca/database-engine#589',\n publicCoreTableCount: 9,\n publicRoutineCount: 0,\n },\n profiles: {\n 'api-contract-v1': {\n phase: 'contract',\n description: 'Frozen api RPC profile for database-engine migration head 20260902104500.',\n },\n },\n corePublicRelations: CORE_PUBLIC_RELATIONS,\n relationConsumers: DATA_API_RELATION_CONSUMERS,\n views: [],\n rpcs: DATA_API_RPC_TARGETS,\n rpcReplayClassification: DATA_API_RPC_REPLAY_CLASSIFICATION,\n cliRolePolicy: {\n anon: 'deny',\n authenticated: 'allow',\n service_role: 'deny',\n },\n retryPolicy: {\n reads:\n 'GET/HEAD and manifest-classified read RPCs permit one auth-refresh replay only after 401/403',\n mutations:\n 'no automatic transport retry; recovery must use the capability idempotency/read path',\n },\n retiredCapabilities: [\n {\n capability: 'rpc:cmd_dataset_alias_plan_guarded',\n targetSchema: 'private',\n reason:\n 'The whole-plan executor is private. Authenticated CLI execution uses the frozen alias execution preflight/gate/admit/read api capabilities.',\n },\n ],\n blockers: [],\n} as const;\n\nexport type ResolvedDataApiCapability = {\n kind: 'relation' | 'rpc';\n name: string;\n schema: 'public' | 'api';\n profile: DataApiProfile;\n role: DataApiRole;\n signature: string | null;\n};\n\nfunction isCorePublicRelation(value: string): value is CorePublicRelation {\n return (CORE_PUBLIC_RELATIONS as readonly string[]).includes(value);\n}\n\nfunction isDataApiRpc(value: string): value is DataApiRpc {\n return Object.hasOwn(DATA_API_RPC_TARGETS, value);\n}\n\nexport function resolveDataApiProfile(env: NodeJS.ProcessEnv = process.env): DataApiProfile {\n const value = env[DATA_API_PROFILE_ENV]?.trim() || 'api-contract-v1';\n if ((DATA_API_PROFILES as readonly string[]).includes(value)) {\n return value as DataApiProfile;\n }\n throw new CliError(`Unsupported ${DATA_API_PROFILE_ENV}: ${value}`, {\n code: 'DATA_API_PROFILE_INVALID',\n exitCode: 2,\n details: { supported: DATA_API_PROFILES },\n });\n}\n\nfunction assertCliRole(role: DataApiRole): void {\n if (role !== 'authenticated') {\n throw new CliError(`The CLI Data API adapter does not accept the ${role} role.`, {\n code: 'DATA_API_ROLE_FORBIDDEN',\n exitCode: 2,\n details: { role, allowed_roles: ['authenticated'] },\n });\n }\n}\n\nexport function resolveDataApiCapability(options: {\n kind: 'relation' | 'rpc';\n name: string;\n env?: NodeJS.ProcessEnv;\n profile?: DataApiProfile;\n role?: DataApiRole;\n}): ResolvedDataApiCapability {\n const profile = options.profile ?? resolveDataApiProfile(options.env);\n const role = options.role ?? 'authenticated';\n assertCliRole(role);\n\n if (options.kind === 'relation') {\n if (!isCorePublicRelation(options.name)) {\n throw new CliError(`Unmanifested Data API relation: ${options.name}`, {\n code: 'DATA_API_CAPABILITY_UNMANIFESTED',\n exitCode: 2,\n details: { kind: options.kind, name: options.name },\n });\n }\n return {\n kind: 'relation',\n name: options.name,\n schema: 'public',\n profile,\n role,\n signature: null,\n };\n }\n\n if (!isDataApiRpc(options.name)) {\n throw new CliError(`Unmanifested Data API RPC: ${options.name}`, {\n code: 'DATA_API_CAPABILITY_UNMANIFESTED',\n exitCode: 2,\n details: { kind: options.kind, name: options.name },\n });\n }\n const target = DATA_API_RPC_TARGETS[options.name];\n return {\n kind: 'rpc',\n name: options.name,\n schema: 'api',\n profile,\n role,\n signature: target.signature,\n };\n}\n\nexport function applyDataApiProfileHeaders(\n headers: HeadersInit | undefined,\n capability: ResolvedDataApiCapability,\n method = 'GET',\n): Record<string, string> {\n const resolved = new Headers(headers);\n const normalizedMethod = method.toUpperCase();\n if (normalizedMethod === 'GET' || normalizedMethod === 'HEAD') {\n resolved.set('Accept-Profile', capability.schema);\n } else {\n resolved.set('Content-Profile', capability.schema);\n }\n return Object.fromEntries(resolved.entries());\n}\n\nexport function resolveDataApiCapabilityFromUrl(options: {\n url: string;\n method?: string;\n env?: NodeJS.ProcessEnv;\n profile?: DataApiProfile;\n}): ResolvedDataApiCapability {\n const parsed = new URL(options.url);\n const marker = '/rest/v1/';\n const markerIndex = parsed.pathname.indexOf(marker);\n if (markerIndex < 0) {\n throw new CliError(`URL is not a Supabase Data API route: ${options.url}`, {\n code: 'DATA_API_URL_INVALID',\n exitCode: 2,\n });\n }\n const segments = parsed.pathname\n .slice(markerIndex + marker.length)\n .split('/')\n .filter(Boolean);\n if (segments[0] === 'rpc' && segments[1]) {\n return resolveDataApiCapability({\n kind: 'rpc',\n name: segments[1],\n env: options.env,\n profile: options.profile,\n });\n }\n if (segments[0]) {\n return resolveDataApiCapability({\n kind: 'relation',\n name: segments[0],\n env: options.env,\n profile: options.profile,\n });\n }\n throw new CliError(`Data API URL has no relation or RPC name: ${options.url}`, {\n code: 'DATA_API_URL_INVALID',\n exitCode: 2,\n });\n}\n\nexport function isDataApiUrl(url: string): boolean {\n return new URL(url).pathname.includes('/rest/v1/');\n}\n\nexport function buildDataApiUrl(\n restBaseUrl: string,\n capability: Pick<ResolvedDataApiCapability, 'kind' | 'name'>,\n): string {\n const base = restBaseUrl.replace(/\\/+$/u, '');\n return capability.kind === 'rpc'\n ? `${base}/rpc/${capability.name}`\n : `${base}/${capability.name}`;\n}\n"]}
1
+ {"version":3,"file":"supabase-data-api-contract.js","sourceRoot":"","sources":["../../../src/lib/supabase-data-api-contract.ts"],"names":[],"mappings":"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","sourcesContent":["import { CliError } from './errors.js';\nimport { DATA_API_RPC_REPLAY_CLASSIFICATION } from './supabase-data-api-replay.js';\nexport {\n DATA_API_RPC_REPLAY_CLASSIFICATION,\n isDataApiAuthRefreshReplaySafe,\n} from './supabase-data-api-replay.js';\n\nexport const DATA_API_PROFILE_ENV = 'TIANGONG_LCA_DATA_API_PROFILE';\nexport const DATA_API_PROFILES = ['api-contract-v1'] as const;\nexport type DataApiProfile = (typeof DATA_API_PROFILES)[number];\nexport type DataApiRole = 'anon' | 'authenticated' | 'service_role';\n\nexport const CORE_PUBLIC_RELATIONS = [\n 'contacts',\n 'flowproperties',\n 'flows',\n 'ilcd',\n 'lciamethods',\n 'lifecyclemodels',\n 'processes',\n 'sources',\n 'unitgroups',\n] as const;\nexport type CorePublicRelation = (typeof CORE_PUBLIC_RELATIONS)[number];\n\nexport const DATA_API_RELATION_CONSUMERS = {\n contacts: [\n 'src/lib/dataset-save-draft-run.ts',\n 'src/lib/dataset-remote-verify.ts',\n 'src/lib/dataset-maintenance-remote.ts',\n 'src/lib/process-refresh-references.ts',\n 'src/lib/dataset-maintenance-clear-account.ts',\n ],\n flowproperties: [\n 'src/lib/dataset-support-cache.ts',\n 'src/lib/dataset-save-draft-run.ts',\n 'src/lib/dataset-remote-verify.ts',\n 'src/lib/dataset-maintenance-remote.ts',\n 'src/lib/dataset-maintenance-flow-identity-capture.ts',\n 'src/lib/process-refresh-references.ts',\n ],\n flows: [\n 'src/lib/flow-read.ts',\n 'src/lib/flow-list.ts',\n 'src/lib/flow-publish-version.ts',\n 'src/lib/dataset-save-draft-run.ts',\n 'src/lib/dataset-remote-verify.ts',\n 'src/lib/dataset-maintenance-remote.ts',\n 'src/lib/dataset-maintenance-flow-identity-capture.ts',\n 'src/lib/process-refresh-references.ts',\n 'src/lib/dataset-maintenance-clear-account.ts',\n ],\n ilcd: [],\n lciamethods: [\n 'src/lib/dataset-remote-verify.ts',\n 'src/lib/dataset-maintenance-remote.ts',\n 'src/lib/process-refresh-references.ts',\n ],\n lifecyclemodels: [\n 'src/lib/lifecyclemodel-bundle-save.ts',\n 'src/lib/process-dedup-review.ts',\n 'src/lib/dataset-remote-verify.ts',\n 'src/lib/dataset-maintenance-remote.ts',\n 'src/lib/supabase-json-ordered-write.ts',\n 'src/lib/dataset-maintenance-clear-account.ts',\n ],\n processes: [\n 'src/lib/process-get.ts',\n 'src/lib/process-list.ts',\n 'src/lib/process-save-draft.ts',\n 'src/lib/process-scope-statistics.ts',\n 'src/lib/process-dedup-review.ts',\n 'src/lib/process-refresh-references.ts',\n 'src/lib/dataset-save-draft-run.ts',\n 'src/lib/dataset-remote-verify.ts',\n 'src/lib/dataset-maintenance-remote.ts',\n 'src/lib/supabase-json-ordered-write.ts',\n 'src/lib/supabase-rest.ts',\n 'src/lib/dataset-maintenance-clear-account.ts',\n ],\n sources: [\n 'src/lib/dataset-save-draft-run.ts',\n 'src/lib/dataset-remote-verify.ts',\n 'src/lib/dataset-maintenance-remote.ts',\n 'src/lib/supabase-json-ordered-write.ts',\n 'src/lib/process-refresh-references.ts',\n 'src/lib/dataset-maintenance-clear-account.ts',\n ],\n unitgroups: [\n 'src/lib/dataset-support-cache.ts',\n 'src/lib/dataset-save-draft-run.ts',\n 'src/lib/dataset-remote-verify.ts',\n 'src/lib/dataset-maintenance-remote.ts',\n 'src/lib/dataset-maintenance-flow-identity-capture.ts',\n 'src/lib/process-refresh-references.ts',\n ],\n} as const satisfies Record<CorePublicRelation, readonly string[]>;\n\ntype RpcTarget = {\n targetSchema: 'api';\n signature: string;\n};\n\nexport const DATA_API_RPC_TARGETS = {\n cmd_dataset_alias_execution_admit_guarded: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_alias_execution_admit_guarded(p_request jsonb)',\n },\n cmd_dataset_alias_execution_gate_guarded: {\n targetSchema: 'api',\n signature:\n 'api.cmd_dataset_alias_execution_gate_guarded(p_request_id uuid, p_preflight_token text, p_gate_name text)',\n },\n cmd_dataset_alias_execution_preflight_guarded: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_alias_execution_preflight_guarded(p_request jsonb)',\n },\n cmd_dataset_alias_execution_read: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_alias_execution_read(p_request_id uuid)',\n },\n cmd_dataset_delete: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_delete(p_table text, p_id uuid, p_version text, p_audit jsonb)',\n },\n cmd_dataset_derivative_rebuild_plan_guarded: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_derivative_rebuild_plan_guarded(p_plan jsonb)',\n },\n cmd_dataset_derivative_rebuild_read: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_derivative_rebuild_read(p_request_id uuid)',\n },\n cmd_dataset_derivative_rebuild_snapshot: {\n targetSchema: 'api',\n signature:\n 'api.cmd_dataset_derivative_rebuild_snapshot(p_table text, p_id uuid, p_version text)',\n },\n cmd_dataset_flow_identity_capture_attest_guarded: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_flow_identity_capture_attest_guarded(p_request jsonb)',\n },\n cmd_dataset_flow_identity_process_rewrite_guarded: {\n targetSchema: 'api',\n signature:\n 'api.cmd_dataset_flow_identity_process_rewrite_guarded(p_scope_id uuid, p_request jsonb, p_authorization jsonb)',\n },\n cmd_dataset_flow_identity_scope_finalize_guarded: {\n targetSchema: 'api',\n signature:\n 'api.cmd_dataset_flow_identity_scope_finalize_guarded(p_scope_id uuid, p_request jsonb, p_authorization jsonb)',\n },\n cmd_dataset_flow_identity_scope_lookup: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_flow_identity_scope_lookup(p_request jsonb)',\n },\n cmd_dataset_flow_identity_scope_preflight_guarded: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_flow_identity_scope_preflight_guarded(p_request jsonb)',\n },\n cmd_dataset_flow_identity_scope_read: {\n targetSchema: 'api',\n signature: 'api.cmd_dataset_flow_identity_scope_read(p_scope_id uuid)',\n },\n cmd_dataset_flow_identity_scope_recover_guarded: {\n targetSchema: 'api',\n signature:\n 'api.cmd_dataset_flow_identity_scope_recover_guarded(p_scope_id uuid, p_request jsonb)',\n },\n cmd_dataset_save_draft: {\n targetSchema: 'api',\n signature:\n 'api.cmd_dataset_save_draft(p_table text, p_id uuid, p_version text, p_json_ordered jsonb, p_model_id uuid, p_rule_verification boolean, p_audit jsonb, p_model_version text)',\n },\n} as const satisfies Record<string, RpcTarget>;\n\nexport type DataApiRpc = keyof typeof DATA_API_RPC_TARGETS;\n\nexport const DATA_API_CONTRACT = {\n schemaVersion: 'tiangong-lca-cli.data-api-contract.v1',\n databaseContract: {\n repository: 'tiangong-lca/database-engine',\n databaseCommit: '1320dcc506fe37af6b625ae30fbe0bec38cf87c6',\n migrationHead: '20260902104500',\n migrationSetGitTreeSha: '88e212220c0037cee673d0522340d3cca5e791dd',\n contractMigrations: {\n fullSchemaCutover: {\n path: 'supabase/migrations/20260805130000_full_schema_cutover.sql',\n sha256: 'd409022fb25d9313d17b0f76216ca6e4abbfce7d6c5b6e74c869314d1c7e5afb',\n },\n apiContractClosure: {\n path: 'supabase/migrations/20260806160000_api_contract_closure.sql',\n sha256: 'e0e7aec8e03d70c60ee0d5c2b332ce73fa7b4b229725c9a9fcb0e1a1d7e8c511',\n },\n processModelVersionContract: {\n path: 'supabase/migrations/20260902100000_process_model_version_contract.sql',\n sha256: '99cbaf474098281ea8c57fcef093174d0ef78a18300f133dd8cc6f9e59a4a29b',\n },\n processSaveDraftModelVersion: {\n path: 'supabase/migrations/20260902103509_add_process_model_version_to_dataset_save_draft.sql',\n sha256: 'ca93f3279673e292803bd8c477aec76b772c7246e16114808d31e64994037723',\n },\n migrationHead: {\n path: 'supabase/migrations/20260902104500_use_exact_model_version_in_review_ownership.sql',\n sha256: '538ec3001f7683b57817e4a89973ded127522ce94521720ed583de99711bbe60',\n },\n },\n contractReady: true,\n snapshotRole: 'frozen-process-model-version-contract',\n provenanceIssue: 'tiangong-lca/database-engine#589',\n publicCoreTableCount: 9,\n publicRoutineCount: 0,\n },\n profiles: {\n 'api-contract-v1': {\n phase: 'contract',\n description: 'Frozen api RPC profile for database-engine migration head 20260902104500.',\n },\n },\n corePublicRelations: CORE_PUBLIC_RELATIONS,\n relationConsumers: DATA_API_RELATION_CONSUMERS,\n views: [],\n rpcs: DATA_API_RPC_TARGETS,\n rpcReplayClassification: DATA_API_RPC_REPLAY_CLASSIFICATION,\n cliRolePolicy: {\n anon: 'deny',\n authenticated: 'allow',\n service_role: 'deny',\n },\n retryPolicy: {\n reads:\n 'GET/HEAD and manifest-classified read RPCs permit one auth-refresh replay only after 401/403',\n mutations:\n 'no automatic transport retry; recovery must use the capability idempotency/read path',\n },\n retiredCapabilities: [\n {\n capability: 'rpc:cmd_dataset_alias_plan_guarded',\n targetSchema: 'private',\n reason:\n 'The whole-plan executor is private. Authenticated CLI execution uses the frozen alias execution preflight/gate/admit/read api capabilities.',\n },\n ],\n blockers: [],\n} as const;\n\nexport type ResolvedDataApiCapability = {\n kind: 'relation' | 'rpc';\n name: string;\n schema: 'public' | 'api';\n profile: DataApiProfile;\n role: DataApiRole;\n signature: string | null;\n};\n\nfunction isCorePublicRelation(value: string): value is CorePublicRelation {\n return (CORE_PUBLIC_RELATIONS as readonly string[]).includes(value);\n}\n\nfunction isDataApiRpc(value: string): value is DataApiRpc {\n return Object.hasOwn(DATA_API_RPC_TARGETS, value);\n}\n\nexport function resolveDataApiProfile(env: NodeJS.ProcessEnv = process.env): DataApiProfile {\n const value = env[DATA_API_PROFILE_ENV]?.trim() || 'api-contract-v1';\n if ((DATA_API_PROFILES as readonly string[]).includes(value)) {\n return value as DataApiProfile;\n }\n throw new CliError(`Unsupported ${DATA_API_PROFILE_ENV}: ${value}`, {\n code: 'DATA_API_PROFILE_INVALID',\n exitCode: 2,\n details: { supported: DATA_API_PROFILES },\n });\n}\n\nfunction assertCliRole(role: DataApiRole): void {\n if (role !== 'authenticated') {\n throw new CliError(`The CLI Data API adapter does not accept the ${role} role.`, {\n code: 'DATA_API_ROLE_FORBIDDEN',\n exitCode: 2,\n details: { role, allowed_roles: ['authenticated'] },\n });\n }\n}\n\nexport function resolveDataApiCapability(options: {\n kind: 'relation' | 'rpc';\n name: string;\n env?: NodeJS.ProcessEnv;\n profile?: DataApiProfile;\n role?: DataApiRole;\n}): ResolvedDataApiCapability {\n const profile = options.profile ?? resolveDataApiProfile(options.env);\n const role = options.role ?? 'authenticated';\n assertCliRole(role);\n\n if (options.kind === 'relation') {\n if (!isCorePublicRelation(options.name)) {\n throw new CliError(`Unmanifested Data API relation: ${options.name}`, {\n code: 'DATA_API_CAPABILITY_UNMANIFESTED',\n exitCode: 2,\n details: { kind: options.kind, name: options.name },\n });\n }\n return {\n kind: 'relation',\n name: options.name,\n schema: 'public',\n profile,\n role,\n signature: null,\n };\n }\n\n if (!isDataApiRpc(options.name)) {\n throw new CliError(`Unmanifested Data API RPC: ${options.name}`, {\n code: 'DATA_API_CAPABILITY_UNMANIFESTED',\n exitCode: 2,\n details: { kind: options.kind, name: options.name },\n });\n }\n const target = DATA_API_RPC_TARGETS[options.name];\n return {\n kind: 'rpc',\n name: options.name,\n schema: 'api',\n profile,\n role,\n signature: target.signature,\n };\n}\n\nexport function applyDataApiProfileHeaders(\n headers: HeadersInit | undefined,\n capability: ResolvedDataApiCapability,\n method = 'GET',\n): Record<string, string> {\n const resolved = new Headers(headers);\n const normalizedMethod = method.toUpperCase();\n if (normalizedMethod === 'GET' || normalizedMethod === 'HEAD') {\n resolved.set('Accept-Profile', capability.schema);\n } else {\n resolved.set('Content-Profile', capability.schema);\n }\n return Object.fromEntries(resolved.entries());\n}\n\nexport function resolveDataApiCapabilityFromUrl(options: {\n url: string;\n method?: string;\n env?: NodeJS.ProcessEnv;\n profile?: DataApiProfile;\n}): ResolvedDataApiCapability {\n const parsed = new URL(options.url);\n const marker = '/rest/v1/';\n const markerIndex = parsed.pathname.indexOf(marker);\n if (markerIndex < 0) {\n throw new CliError(`URL is not a Supabase Data API route: ${options.url}`, {\n code: 'DATA_API_URL_INVALID',\n exitCode: 2,\n });\n }\n const segments = parsed.pathname\n .slice(markerIndex + marker.length)\n .split('/')\n .filter(Boolean);\n if (segments[0] === 'rpc' && segments[1]) {\n return resolveDataApiCapability({\n kind: 'rpc',\n name: segments[1],\n env: options.env,\n profile: options.profile,\n });\n }\n if (segments[0]) {\n return resolveDataApiCapability({\n kind: 'relation',\n name: segments[0],\n env: options.env,\n profile: options.profile,\n });\n }\n throw new CliError(`Data API URL has no relation or RPC name: ${options.url}`, {\n code: 'DATA_API_URL_INVALID',\n exitCode: 2,\n });\n}\n\nexport function isDataApiUrl(url: string): boolean {\n return new URL(url).pathname.includes('/rest/v1/');\n}\n\nexport function buildDataApiUrl(\n restBaseUrl: string,\n capability: Pick<ResolvedDataApiCapability, 'kind' | 'name'>,\n): string {\n const base = restBaseUrl.replace(/\\/+$/u, '');\n return capability.kind === 'rpc'\n ? `${base}/rpc/${capability.name}`\n : `${base}/${capability.name}`;\n}\n"]}
package/dist/src/main.js CHANGED
@@ -4,8 +4,20 @@ import process from 'node:process';
4
4
  import { pathToFileURL } from 'node:url';
5
5
  import { executeCli } from './cli.js';
6
6
  import { loadDotEnv } from './lib/dotenv.js';
7
+ import { isRuntimeCommand } from './lib/runtime/command.js';
8
+ import { runtimePlatform } from './lib/runtime/descriptor.js';
9
+ import { toErrorPayload } from './lib/errors.js';
7
10
  export async function main(argv, env = process.env) {
8
- const dotEnvStatus = loadDotEnv(process.cwd(), env);
11
+ try {
12
+ runtimePlatform(process.platform, process.arch);
13
+ }
14
+ catch (error) {
15
+ process.stderr.write(`${JSON.stringify(toErrorPayload(error))}\n`);
16
+ return 69;
17
+ }
18
+ const dotEnvStatus = isRuntimeCommand(argv)
19
+ ? { loaded: false, path: path.join(process.cwd(), '.env'), count: 0 }
20
+ : loadDotEnv(process.cwd(), env);
9
21
  const result = await executeCli(argv, {
10
22
  env,
11
23
  dotEnvStatus,
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";AAEA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc,EAAE,GAAG,GAAsB,OAAO,CAAC,GAAG;IAC7E,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE;QACpC,GAAG;QACH,YAAY;QACZ,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,aAAqB,EAAE,KAAyB;IAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,aAAa,KAAK,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAI,GAAa,OAAO,CAAC,IAAI,EAC7B,GAAG,GAAsB,OAAO,CAAC,GAAG,EACpC,aAAa,GAAW,OAAO,IAAI,CAAC,GAAG;IAEvC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,mBAAmB,EAAE,CAAC","sourcesContent":["#!/usr/bin/env node\n\nimport path from 'node:path';\nimport process from 'node:process';\nimport { pathToFileURL } from 'node:url';\nimport { executeCli } from './cli.js';\nimport { loadDotEnv } from './lib/dotenv.js';\n\nexport async function main(argv: string[], env: NodeJS.ProcessEnv = process.env): Promise<number> {\n const dotEnvStatus = loadDotEnv(process.cwd(), env);\n const result = await executeCli(argv, {\n env,\n dotEnvStatus,\n fetchImpl: fetch,\n });\n\n if (result.stdout) {\n process.stdout.write(result.stdout);\n }\n if (result.stderr) {\n process.stderr.write(result.stderr);\n }\n return result.exitCode;\n}\n\nexport function isDirectEntry(importMetaUrl: string, argv1: string | undefined): boolean {\n if (!argv1) {\n return false;\n }\n return importMetaUrl === pathToFileURL(path.resolve(argv1)).href;\n}\n\nexport async function maybeRunFromProcess(\n argv: string[] = process.argv,\n env: NodeJS.ProcessEnv = process.env,\n importMetaUrl: string = import.meta.url,\n): Promise<number | null> {\n const entryPath = argv[1];\n if (!isDirectEntry(importMetaUrl, entryPath)) {\n return null;\n }\n\n const exitCode = await main(argv.slice(2), env);\n process.exitCode = exitCode;\n return exitCode;\n}\n\nawait maybeRunFromProcess();\n"]}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";AAEA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc,EAAE,GAAG,GAAsB,OAAO,CAAC,GAAG;IAC7E,IAAI,CAAC;QACH,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QACnE,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC;QACzC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QACrE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE;QACpC,GAAG;QACH,YAAY;QACZ,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,aAAqB,EAAE,KAAyB;IAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,aAAa,KAAK,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAI,GAAa,OAAO,CAAC,IAAI,EAC7B,GAAG,GAAsB,OAAO,CAAC,GAAG,EACpC,aAAa,GAAW,OAAO,IAAI,CAAC,GAAG;IAEvC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,mBAAmB,EAAE,CAAC","sourcesContent":["#!/usr/bin/env node\n\nimport path from 'node:path';\nimport process from 'node:process';\nimport { pathToFileURL } from 'node:url';\nimport { executeCli } from './cli.js';\nimport { loadDotEnv } from './lib/dotenv.js';\nimport { isRuntimeCommand } from './lib/runtime/command.js';\nimport { runtimePlatform } from './lib/runtime/descriptor.js';\nimport { toErrorPayload } from './lib/errors.js';\n\nexport async function main(argv: string[], env: NodeJS.ProcessEnv = process.env): Promise<number> {\n try {\n runtimePlatform(process.platform, process.arch);\n } catch (error) {\n process.stderr.write(`${JSON.stringify(toErrorPayload(error))}\\n`);\n return 69;\n }\n const dotEnvStatus = isRuntimeCommand(argv)\n ? { loaded: false, path: path.join(process.cwd(), '.env'), count: 0 }\n : loadDotEnv(process.cwd(), env);\n const result = await executeCli(argv, {\n env,\n dotEnvStatus,\n fetchImpl: fetch,\n });\n\n if (result.stdout) {\n process.stdout.write(result.stdout);\n }\n if (result.stderr) {\n process.stderr.write(result.stderr);\n }\n return result.exitCode;\n}\n\nexport function isDirectEntry(importMetaUrl: string, argv1: string | undefined): boolean {\n if (!argv1) {\n return false;\n }\n return importMetaUrl === pathToFileURL(path.resolve(argv1)).href;\n}\n\nexport async function maybeRunFromProcess(\n argv: string[] = process.argv,\n env: NodeJS.ProcessEnv = process.env,\n importMetaUrl: string = import.meta.url,\n): Promise<number | null> {\n const entryPath = argv[1];\n if (!isDirectEntry(importMetaUrl, entryPath)) {\n return null;\n }\n\n const exitCode = await main(argv.slice(2), env);\n process.exitCode = exitCode;\n return exitCode;\n}\n\nawait maybeRunFromProcess();\n"]}
@@ -0,0 +1,15 @@
1
+ import type { CliRuntimeDescriptor } from './lib/runtime/types.js';
2
+ export { CLI_RUNTIME_DESCRIPTOR_SCHEMA, CLI_RUNTIME_EXPECTATION_SCHEMA, RUNTIME_PLATFORMS, } from './lib/runtime/types.js';
3
+ export type { CliRuntimeDescriptor, CliRuntimeExpectation, RuntimeFileFact, RuntimePlatform, } from './lib/runtime/types.js';
4
+ /** Observe this installed package without reading user configuration or accessing the network. */
5
+ export declare function describeCliRuntime(): CliRuntimeDescriptor;
6
+ /** The caller supplies independently trusted expected release facts. This grants no account permission. */
7
+ export declare function assertCliRuntimeMatches(expected: unknown): CliRuntimeDescriptor;
8
+ export { parseRuntimeManifest, trustRuntimeManifest, loadTrustedRuntimeManifest, assertWorkspaceCompatibility, } from './lib/runtime/manifest.js';
9
+ export { RUNTIME_MANIFEST_SCHEMA, RUNTIME_BOOTSTRAP_PROTOCOL, RUNTIME_ARCHIVE_FORMAT, } from './lib/runtime/manifest-types.js';
10
+ export type { RuntimeManifest, RuntimeComponent, RuntimeLaunch, ComponentFile, TrustedRuntimeManifest, RuntimeHost, WorkspaceCompatibility, } from './lib/runtime/manifest-types.js';
11
+ export { ensureRuntimeComponents, inspectRuntimeComponents, pruneRuntimeComponents, } from './lib/runtime/manager.js';
12
+ export type { RuntimeManagerOptions, RuntimeManagerReport, RuntimeComponentStatus, } from './lib/runtime/manager.js';
13
+ export { executeRuntimeLaunch } from './lib/runtime/execute.js';
14
+ export type { RuntimeExecutionOptions } from './lib/runtime/execute.js';
15
+ export { writeRuntimeComponentArchive } from './lib/runtime/archive-writer.js';
@@ -0,0 +1,22 @@
1
+ import { inspectCliRuntime, runtimePackageRoot, assertRuntimeObservationMatches, validateRuntimeExpectation, } from './lib/runtime/descriptor.js';
2
+ export { CLI_RUNTIME_DESCRIPTOR_SCHEMA, CLI_RUNTIME_EXPECTATION_SCHEMA, RUNTIME_PLATFORMS, } from './lib/runtime/types.js';
3
+ /** Observe this installed package without reading user configuration or accessing the network. */
4
+ export function describeCliRuntime() {
5
+ return inspectCliRuntime(runtimePackageRoot(import.meta.url), {
6
+ executable: process.execPath,
7
+ version: process.versions.node,
8
+ platform: process.platform,
9
+ arch: process.arch,
10
+ });
11
+ }
12
+ /** The caller supplies independently trusted expected release facts. This grants no account permission. */
13
+ export function assertCliRuntimeMatches(expected) {
14
+ validateRuntimeExpectation(expected);
15
+ return assertRuntimeObservationMatches(describeCliRuntime(), expected);
16
+ }
17
+ export { parseRuntimeManifest, trustRuntimeManifest, loadTrustedRuntimeManifest, assertWorkspaceCompatibility, } from './lib/runtime/manifest.js';
18
+ export { RUNTIME_MANIFEST_SCHEMA, RUNTIME_BOOTSTRAP_PROTOCOL, RUNTIME_ARCHIVE_FORMAT, } from './lib/runtime/manifest-types.js';
19
+ export { ensureRuntimeComponents, inspectRuntimeComponents, pruneRuntimeComponents, } from './lib/runtime/manager.js';
20
+ export { executeRuntimeLaunch } from './lib/runtime/execute.js';
21
+ export { writeRuntimeComponentArchive } from './lib/runtime/archive-writer.js';
22
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,+BAA+B,EAC/B,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAQhC,kGAAkG;AAClG,MAAM,UAAU,kBAAkB;IAChC,OAAO,iBAAiB,CAAC,kBAAkB,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE;QAC5D,UAAU,EAAE,OAAO,CAAC,QAAQ;QAC5B,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAC;AACL,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,uBAAuB,CAAC,QAAiB;IACvD,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,+BAA+B,CAAC,kBAAkB,EAAE,EAAE,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AAUzC,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC","sourcesContent":["import {\n inspectCliRuntime,\n runtimePackageRoot,\n assertRuntimeObservationMatches,\n validateRuntimeExpectation,\n} from './lib/runtime/descriptor.js';\nimport type { CliRuntimeDescriptor } from './lib/runtime/types.js';\nexport {\n CLI_RUNTIME_DESCRIPTOR_SCHEMA,\n CLI_RUNTIME_EXPECTATION_SCHEMA,\n RUNTIME_PLATFORMS,\n} from './lib/runtime/types.js';\nexport type {\n CliRuntimeDescriptor,\n CliRuntimeExpectation,\n RuntimeFileFact,\n RuntimePlatform,\n} from './lib/runtime/types.js';\n\n/** Observe this installed package without reading user configuration or accessing the network. */\nexport function describeCliRuntime(): CliRuntimeDescriptor {\n return inspectCliRuntime(runtimePackageRoot(import.meta.url), {\n executable: process.execPath,\n version: process.versions.node,\n platform: process.platform,\n arch: process.arch,\n });\n}\n\n/** The caller supplies independently trusted expected release facts. This grants no account permission. */\nexport function assertCliRuntimeMatches(expected: unknown): CliRuntimeDescriptor {\n validateRuntimeExpectation(expected);\n return assertRuntimeObservationMatches(describeCliRuntime(), expected);\n}\n\nexport {\n parseRuntimeManifest,\n trustRuntimeManifest,\n loadTrustedRuntimeManifest,\n assertWorkspaceCompatibility,\n} from './lib/runtime/manifest.js';\nexport {\n RUNTIME_MANIFEST_SCHEMA,\n RUNTIME_BOOTSTRAP_PROTOCOL,\n RUNTIME_ARCHIVE_FORMAT,\n} from './lib/runtime/manifest-types.js';\nexport type {\n RuntimeManifest,\n RuntimeComponent,\n RuntimeLaunch,\n ComponentFile,\n TrustedRuntimeManifest,\n RuntimeHost,\n WorkspaceCompatibility,\n} from './lib/runtime/manifest-types.js';\nexport {\n ensureRuntimeComponents,\n inspectRuntimeComponents,\n pruneRuntimeComponents,\n} from './lib/runtime/manager.js';\nexport type {\n RuntimeManagerOptions,\n RuntimeManagerReport,\n RuntimeComponentStatus,\n} from './lib/runtime/manager.js';\n\nexport { executeRuntimeLaunch } from './lib/runtime/execute.js';\nexport type { RuntimeExecutionOptions } from './lib/runtime/execute.js';\nexport { writeRuntimeComponentArchive } from './lib/runtime/archive-writer.js';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tiangong-lca/cli",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "description": "Unified TianGong LCA CLI with direct REST adapters and low-entropy command surface.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,6 +24,10 @@
24
24
  "types": "./dist/src/command-spec.d.ts",
25
25
  "import": "./dist/src/command-spec.js"
26
26
  },
27
+ "./runtime": {
28
+ "types": "./dist/src/runtime.d.ts",
29
+ "import": "./dist/src/runtime.js"
30
+ },
27
31
  "./batch": {
28
32
  "types": "./dist/src/batch.d.ts",
29
33
  "import": "./dist/src/batch.js"
@@ -63,6 +67,7 @@
63
67
  "lint-staged": "^17.4.1",
64
68
  "oxlint": "^1.80.0",
65
69
  "oxlint-tsgolint": "^7.0.2001",
70
+ "playwright": "1.62.1",
66
71
  "prettier": "3.9.6",
67
72
  "sigstore": "5.0.0",
68
73
  "tsx": "^4.23.13",
@@ -95,6 +100,7 @@
95
100
  "release:check-tag": "node ./scripts/ci/check-release-tag.cjs cli",
96
101
  "release:assert-unpublished": "node ./scripts/ci/release-version.cjs assert-unpublished",
97
102
  "release:verify-published": "node ./scripts/ci/verify-published-release.cjs",
98
- "clean": "node --eval \"import('node:fs').then(({ rmSync }) => rmSync('dist', { recursive: true, force: true }))\""
103
+ "clean": "node --eval \"import('node:fs').then(({ rmSync }) => rmSync('dist', { recursive: true, force: true }))\"",
104
+ "live:oauth": "node --import tsx ./scripts/live/oauth-case.ts"
99
105
  }
100
106
  }