omc-core 0.4.15 → 0.4.16
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/LICENSE +21 -21
- package/README.md +13 -13
- package/dist/application-discovery.js +0 -0
- package/dist/approval-frame-readability.js +0 -0
- package/dist/approval-protocol.js +8 -8
- package/dist/autonomous-delivery-demonstration-host.js +0 -0
- package/dist/autonomous-delivery-demonstration.js +0 -0
- package/dist/b1-dead-runner-contract.js +0 -0
- package/dist/b2-extension-contract.js +0 -0
- package/dist/backend-extension-release.js +0 -0
- package/dist/bizsheet-html-elements.js +0 -0
- package/dist/bizsheet-online-js.js +0 -0
- package/dist/bootstrap-lifecycle.js +19 -19
- package/dist/bootstrap-plan-registry.js +11 -11
- package/dist/business-rule-integration.js +0 -0
- package/dist/businessrule-contract.js +0 -0
- package/dist/capability-catalog.js +19 -19
- package/dist/change-workflow.js +7 -7
- package/dist/childtable-field-contract.js +0 -0
- package/dist/childtable-live-runner-contract.js +0 -0
- package/dist/childtable-sheet201-contract.js +0 -0
- package/dist/cloudpivot-86-rule-integration-knowledge-pack.js +0 -0
- package/dist/cloudpivot-adapter.js +0 -0
- package/dist/cloudpivot-auth.js +0 -0
- package/dist/cloudpivot-business-object-acceptance.js +0 -0
- package/dist/cloudpivot-capability-builders.js +0 -0
- package/dist/cloudpivot-fingerprints.js +0 -0
- package/dist/cloudpivot-frontend-knowledge-pack.js +0 -0
- package/dist/cloudpivot-low-code.js +0 -0
- package/dist/cloudpivot-native-configuration.js +0 -0
- package/dist/cloudpivot-native-lifecycle-contract.js +0 -0
- package/dist/cloudpivot-online-js.js +0 -0
- package/dist/cloudpivot-operation-seam.js +0 -0
- package/dist/compatibility-assessment.js +0 -0
- package/dist/config-only-runtime-validation-host.js +0 -0
- package/dist/config-only-runtime-validation.js +0 -0
- package/dist/configuration-handoff.js +0 -0
- package/dist/configuration-intent.js +0 -0
- package/dist/controlled-executor.js +0 -0
- package/dist/cpharness-backend.js +0 -0
- package/dist/cpharness-contracts.js +0 -0
- package/dist/cpharness-extension-package-builder.js +0 -0
- package/dist/dbsweep.js +0 -0
- package/dist/delivery-child-agent.js +0 -0
- package/dist/delivery-graph.js +9 -9
- package/dist/dsh-history.js +0 -0
- package/dist/dsh-rpc.js +0 -0
- package/dist/dsh-run.js +0 -0
- package/dist/end-to-end-virtual-delivery.js +0 -0
- package/dist/environment-release-freeze.js +6 -6
- package/dist/families/address-attachment.js +0 -0
- package/dist/families/date-time.js +0 -0
- package/dist/families/dictionary-enum.js +0 -0
- package/dist/families/numeric-logical.js +0 -0
- package/dist/families/people-department.js +0 -0
- package/dist/families/registry.js +0 -0
- package/dist/families/relevance.js +0 -0
- package/dist/families/text-extension.js +0 -0
- package/dist/families/types.js +0 -0
- package/dist/field-live-host-tools.js +0 -0
- package/dist/field-probe-runner-contract.js +0 -0
- package/dist/formal-capability-discovery.js +0 -0
- package/dist/formula-controls-contract.js +0 -0
- package/dist/formula-field-contract.js +0 -0
- package/dist/formula-live-runner-contract.js +0 -0
- package/dist/full-capability-test-harness.js +0 -0
- package/dist/host-operations.js +0 -0
- package/dist/host-package-registry.js +20 -20
- package/dist/index.js +0 -0
- package/dist/knowledge-pack-builder.js +0 -0
- package/dist/knowledge-pack-runtime.js +0 -0
- package/dist/launcher-package-adapter.js +0 -0
- package/dist/local-online-js-draft.js +0 -0
- package/dist/m2-data-entry-contract.js +0 -0
- package/dist/master-plan-approval.js +0 -0
- package/dist/omc-planning.js +0 -0
- package/dist/omc-review.js +0 -0
- package/dist/omc-validation.js +0 -0
- package/dist/online-js-governance-contract.js +0 -0
- package/dist/online-js-package-adapter.js +0 -0
- package/dist/online-js-promotion.js +0 -0
- package/dist/ordinary-synthesis-router.js +0 -0
- package/dist/orphan-cleanup.js +0 -0
- package/dist/output-declaration-e2e-scenario.js +0 -0
- package/dist/permission-product-crud-capabilities.js +0 -0
- package/dist/project-output-declaration-intent.js +0 -0
- package/dist/release-knowledge-pack-adapter.js +0 -0
- package/dist/representative-acceptance-direct-rpc.js +0 -0
- package/dist/runtime-acceptance.js +0 -0
- package/dist/s28-s29-static-contract.js +0 -0
- package/dist/s29-workflow-greenfield-contract.js +0 -0
- package/dist/s32-restful-contract.js +0 -0
- package/dist/scout-accelerator.js +0 -0
- package/dist/synthesis-delivery-request.js +0 -0
- package/dist/ticket02-direct-rpc.js +0 -0
- package/dist/ticket02-evidence.js +0 -0
- package/dist/ticket02-implementation-delegation.js +0 -0
- package/dist/ticket02-model-route.js +0 -0
- package/dist/ticket02-native-adapter.js +0 -0
- package/dist/ticket02-session-reporting.js +0 -0
- package/dist/ticket02-workflow-validation.js +0 -0
- package/dist/ticket03-background-delegation.js +0 -0
- package/dist/ticket03-form-adapter.js +0 -0
- package/dist/ticket03-native-adapter.js +0 -0
- package/dist/ticket03-native-dsh.js +0 -0
- package/dist/ticket04-background-task-details.js +0 -0
- package/dist/ticket04-local-delivery.js +0 -0
- package/dist/ticket05-backend-extension-contract.js +0 -0
- package/dist/ticket05-parallel-worktrees.js +0 -0
- package/dist/ticket06-mixed-read-only-delivery.js +0 -0
- package/dist/ticket07-environments-approvals-delivery.js +0 -0
- package/dist/ticket08-local-vertical-slice.js +0 -0
- package/dist/ticket08-mixed-requirement-acceptance.js +0 -0
- package/dist/ticket08-native-contract-host.js +0 -0
- package/dist/ticket08-native-contract.js +0 -0
- package/dist/ticket08-test-model-mutation.js +0 -0
- package/dist/ticket09-test-field-mutation.js +0 -0
- package/dist/ticket10-test-field-publish.js +0 -0
- package/dist/ticket11-test-form-draft.js +0 -0
- package/dist/ticket12-test-form-publish.js +0 -0
- package/dist/ticket13-full-ladder.js +0 -0
- package/dist/ticket20-test-data-rule.js +0 -0
- package/dist/two-stage-change-package.js +0 -0
- package/dist/workflow-rule-integration-adapters.js +0 -0
- package/package.json +38 -38
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Oh-My-CpAgent contributors
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Oh-My-CpAgent contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
# omc-core
|
|
2
|
-
|
|
3
|
-
OMC(Oh-My-CpAgent)配置能力族的共享内核:能力契约、治理原语(审批协议、受控执行器、
|
|
4
|
-
写租约)、CloudPivot wire 解码器,以及字段/模型/表单的契约阶梯。
|
|
5
|
-
|
|
6
|
-
硬性保证:
|
|
7
|
-
|
|
8
|
-
- **零 DSH 依赖。** `omc-core` 从不 import `@deepseek-ai/dsh-*`。由
|
|
9
|
-
`scripts/check-zero-dsh.mjs` 强制(已接入 CI;违反即为红色)。
|
|
10
|
-
- **宿主无关**:没有宿主插件、没有 profile shell、没有安装 shell——那些属于宿主包
|
|
11
|
-
(`oh-my-cpagents` 根包、DSH 层)。
|
|
12
|
-
|
|
13
|
-
本包是 `omc-cli` 的共享运行时依赖,也会与 `omc-cli` 使用相同版本发布到 GitLab npm Package Registry。使用方通常直接安装 `omc-cli`,npm 会自动解析 `omc-core`。
|
|
1
|
+
# omc-core
|
|
2
|
+
|
|
3
|
+
OMC(Oh-My-CpAgent)配置能力族的共享内核:能力契约、治理原语(审批协议、受控执行器、
|
|
4
|
+
写租约)、CloudPivot wire 解码器,以及字段/模型/表单的契约阶梯。
|
|
5
|
+
|
|
6
|
+
硬性保证:
|
|
7
|
+
|
|
8
|
+
- **零 DSH 依赖。** `omc-core` 从不 import `@deepseek-ai/dsh-*`。由
|
|
9
|
+
`scripts/check-zero-dsh.mjs` 强制(已接入 CI;违反即为红色)。
|
|
10
|
+
- **宿主无关**:没有宿主插件、没有 profile shell、没有安装 shell——那些属于宿主包
|
|
11
|
+
(`oh-my-cpagents` 根包、DSH 层)。
|
|
12
|
+
|
|
13
|
+
本包是 `omc-cli` 的共享运行时依赖,也会与 `omc-cli` 使用相同版本发布到 GitLab npm Package Registry。使用方通常直接安装 `omc-cli`,npm 会自动解析 `omc-core`。
|
|
File without changes
|
|
File without changes
|
|
@@ -11,11 +11,11 @@ export class ApprovalProtocol {
|
|
|
11
11
|
if (this.key.length !== 32)
|
|
12
12
|
throw new Error("Approval protocol integrity key must be exactly 32 bytes.");
|
|
13
13
|
this.db = new DatabaseSync(databasePath);
|
|
14
|
-
this.db.exec(`CREATE TABLE IF NOT EXISTS approval_protocol (
|
|
15
|
-
transaction_id TEXT PRIMARY KEY, kind TEXT NOT NULL, opaque_id TEXT NOT NULL,
|
|
16
|
-
expected_json TEXT NOT NULL, intent_hash TEXT NOT NULL, status TEXT NOT NULL,
|
|
17
|
-
completed_boundaries_json TEXT NOT NULL, record_hash TEXT NOT NULL, integrity_mac TEXT NOT NULL,
|
|
18
|
-
UNIQUE(kind, opaque_id)
|
|
14
|
+
this.db.exec(`CREATE TABLE IF NOT EXISTS approval_protocol (
|
|
15
|
+
transaction_id TEXT PRIMARY KEY, kind TEXT NOT NULL, opaque_id TEXT NOT NULL,
|
|
16
|
+
expected_json TEXT NOT NULL, intent_hash TEXT NOT NULL, status TEXT NOT NULL,
|
|
17
|
+
completed_boundaries_json TEXT NOT NULL, record_hash TEXT NOT NULL, integrity_mac TEXT NOT NULL,
|
|
18
|
+
UNIQUE(kind, opaque_id)
|
|
19
19
|
)`);
|
|
20
20
|
for (const column of ["prompt_issued INTEGER NOT NULL DEFAULT 0", "approval_outcome TEXT"]) {
|
|
21
21
|
try {
|
|
@@ -48,8 +48,8 @@ export class ApprovalProtocol {
|
|
|
48
48
|
const next = { ...current, promptIssued: true };
|
|
49
49
|
const recordHash = sha256(next);
|
|
50
50
|
const mac = hmac(recordHash, this.key);
|
|
51
|
-
const result = this.db.prepare(`UPDATE approval_protocol
|
|
52
|
-
SET prompt_issued = 1, record_hash = ?, integrity_mac = ?
|
|
51
|
+
const result = this.db.prepare(`UPDATE approval_protocol
|
|
52
|
+
SET prompt_issued = 1, record_hash = ?, integrity_mac = ?
|
|
53
53
|
WHERE transaction_id = ? AND kind = ? AND opaque_id = ? AND intent_hash = ? AND prompt_issued = 0`)
|
|
54
54
|
.run(recordHash, mac, current.transactionId, current.kind, current.opaqueId, current.intentHash);
|
|
55
55
|
if (Number(result.changes) !== 1) {
|
|
@@ -120,7 +120,7 @@ export class ApprovalProtocol {
|
|
|
120
120
|
save(value) {
|
|
121
121
|
const recordHash = sha256(value);
|
|
122
122
|
const mac = hmac(recordHash, this.key);
|
|
123
|
-
this.db.prepare(`INSERT INTO approval_protocol (transaction_id, kind, opaque_id, expected_json, intent_hash, status, completed_boundaries_json, prompt_issued, approval_outcome, record_hash, integrity_mac)
|
|
123
|
+
this.db.prepare(`INSERT INTO approval_protocol (transaction_id, kind, opaque_id, expected_json, intent_hash, status, completed_boundaries_json, prompt_issued, approval_outcome, record_hash, integrity_mac)
|
|
124
124
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(transaction_id) DO UPDATE SET status = excluded.status, completed_boundaries_json = excluded.completed_boundaries_json, prompt_issued = excluded.prompt_issued, approval_outcome = excluded.approval_outcome, record_hash = excluded.record_hash, integrity_mac = excluded.integrity_mac`)
|
|
125
125
|
.run(value.transactionId, value.kind, value.opaqueId, canonical(value.expected), value.intentHash, value.status, canonical(value.completedBoundaries), value.promptIssued ? 1 : 0, value.approvalOutcome ?? null, recordHash, mac);
|
|
126
126
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -22,18 +22,18 @@ export class BootstrapLifecycleHost {
|
|
|
22
22
|
this.executionClaimHook = options.executionClaimHook;
|
|
23
23
|
mkdirSync(dirname(databasePath), { recursive: true });
|
|
24
24
|
this.db = new DatabaseSync(databasePath);
|
|
25
|
-
this.db.exec(`CREATE TABLE IF NOT EXISTS bootstrap_lifecycle (
|
|
26
|
-
lifecycle_id TEXT PRIMARY KEY,
|
|
27
|
-
plan_json TEXT NOT NULL,
|
|
28
|
-
plan_hash TEXT NOT NULL,
|
|
29
|
-
package_json TEXT,
|
|
30
|
-
package_hash TEXT,
|
|
31
|
-
namespace_json TEXT NOT NULL,
|
|
32
|
-
state TEXT NOT NULL,
|
|
33
|
-
execution_approval_id TEXT,
|
|
34
|
-
consumed_execution_approval_ids_json TEXT NOT NULL DEFAULT '[]',
|
|
35
|
-
record_hash TEXT NOT NULL,
|
|
36
|
-
integrity_mac TEXT NOT NULL
|
|
25
|
+
this.db.exec(`CREATE TABLE IF NOT EXISTS bootstrap_lifecycle (
|
|
26
|
+
lifecycle_id TEXT PRIMARY KEY,
|
|
27
|
+
plan_json TEXT NOT NULL,
|
|
28
|
+
plan_hash TEXT NOT NULL,
|
|
29
|
+
package_json TEXT,
|
|
30
|
+
package_hash TEXT,
|
|
31
|
+
namespace_json TEXT NOT NULL,
|
|
32
|
+
state TEXT NOT NULL,
|
|
33
|
+
execution_approval_id TEXT,
|
|
34
|
+
consumed_execution_approval_ids_json TEXT NOT NULL DEFAULT '[]',
|
|
35
|
+
record_hash TEXT NOT NULL,
|
|
36
|
+
integrity_mac TEXT NOT NULL
|
|
37
37
|
)`);
|
|
38
38
|
for (const column of ["execution_approval_id TEXT", "execution_intent_token TEXT", "consumed_execution_approval_ids_json TEXT NOT NULL DEFAULT '[]'", "integrity_mac TEXT NOT NULL DEFAULT ''"]) {
|
|
39
39
|
try {
|
|
@@ -41,13 +41,13 @@ export class BootstrapLifecycleHost {
|
|
|
41
41
|
}
|
|
42
42
|
catch { /* already present */ }
|
|
43
43
|
}
|
|
44
|
-
this.db.exec(`CREATE TABLE IF NOT EXISTS bootstrap_lifecycle_event (
|
|
45
|
-
sequence INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
46
|
-
lifecycle_id TEXT NOT NULL,
|
|
47
|
-
type TEXT NOT NULL,
|
|
48
|
-
plan_hash TEXT NOT NULL,
|
|
49
|
-
package_hash TEXT,
|
|
50
|
-
payload_json TEXT NOT NULL
|
|
44
|
+
this.db.exec(`CREATE TABLE IF NOT EXISTS bootstrap_lifecycle_event (
|
|
45
|
+
sequence INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
46
|
+
lifecycle_id TEXT NOT NULL,
|
|
47
|
+
type TEXT NOT NULL,
|
|
48
|
+
plan_hash TEXT NOT NULL,
|
|
49
|
+
package_hash TEXT,
|
|
50
|
+
payload_json TEXT NOT NULL
|
|
51
51
|
)`);
|
|
52
52
|
this.recoverExecutingRecords();
|
|
53
53
|
}
|
|
@@ -13,17 +13,17 @@ export class BootstrapPlanRegistry {
|
|
|
13
13
|
this.integrityKey = loadIntegrityKey(databasePath, options.integrityKey);
|
|
14
14
|
mkdirSync(dirname(databasePath), { recursive: true });
|
|
15
15
|
this.db = new DatabaseSync(databasePath);
|
|
16
|
-
this.db.exec(`CREATE TABLE IF NOT EXISTS bootstrap_plan_registry (
|
|
17
|
-
plan_approval_id TEXT PRIMARY KEY,
|
|
18
|
-
plan_hash TEXT NOT NULL,
|
|
19
|
-
serialized_plan TEXT NOT NULL,
|
|
20
|
-
binding_json TEXT NOT NULL,
|
|
21
|
-
approval_status TEXT NOT NULL,
|
|
22
|
-
namespace_json TEXT NOT NULL,
|
|
23
|
-
created_at TEXT NOT NULL,
|
|
24
|
-
finalized_at TEXT,
|
|
25
|
-
record_hash TEXT NOT NULL,
|
|
26
|
-
integrity_mac TEXT NOT NULL
|
|
16
|
+
this.db.exec(`CREATE TABLE IF NOT EXISTS bootstrap_plan_registry (
|
|
17
|
+
plan_approval_id TEXT PRIMARY KEY,
|
|
18
|
+
plan_hash TEXT NOT NULL,
|
|
19
|
+
serialized_plan TEXT NOT NULL,
|
|
20
|
+
binding_json TEXT NOT NULL,
|
|
21
|
+
approval_status TEXT NOT NULL,
|
|
22
|
+
namespace_json TEXT NOT NULL,
|
|
23
|
+
created_at TEXT NOT NULL,
|
|
24
|
+
finalized_at TEXT,
|
|
25
|
+
record_hash TEXT NOT NULL,
|
|
26
|
+
integrity_mac TEXT NOT NULL
|
|
27
27
|
)`);
|
|
28
28
|
}
|
|
29
29
|
register(input) {
|
|
File without changes
|
|
File without changes
|
|
@@ -11,25 +11,25 @@ export class CapabilityCatalog {
|
|
|
11
11
|
constructor(databasePath) {
|
|
12
12
|
mkdirSync(pathDirname(databasePath), { recursive: true });
|
|
13
13
|
this.db = new DatabaseSync(databasePath);
|
|
14
|
-
this.db.exec(`CREATE TABLE IF NOT EXISTS capability (
|
|
15
|
-
id TEXT PRIMARY KEY,
|
|
16
|
-
name TEXT NOT NULL,
|
|
17
|
-
kind TEXT NOT NULL,
|
|
18
|
-
permissions_json TEXT NOT NULL,
|
|
19
|
-
lifecycle_json TEXT NOT NULL,
|
|
20
|
-
freeze_json TEXT NOT NULL,
|
|
21
|
-
operation_contract_hashes_json TEXT NOT NULL DEFAULT '[]',
|
|
22
|
-
status TEXT NOT NULL,
|
|
23
|
-
promotion_status TEXT NOT NULL
|
|
24
|
-
);
|
|
25
|
-
CREATE TABLE IF NOT EXISTS capability_evidence (
|
|
26
|
-
id TEXT PRIMARY KEY,
|
|
27
|
-
capability_id TEXT NOT NULL,
|
|
28
|
-
kind TEXT NOT NULL,
|
|
29
|
-
artifact_id TEXT NOT NULL,
|
|
30
|
-
sha256 TEXT NOT NULL,
|
|
31
|
-
recorded_at TEXT NOT NULL,
|
|
32
|
-
UNIQUE(capability_id, kind)
|
|
14
|
+
this.db.exec(`CREATE TABLE IF NOT EXISTS capability (
|
|
15
|
+
id TEXT PRIMARY KEY,
|
|
16
|
+
name TEXT NOT NULL,
|
|
17
|
+
kind TEXT NOT NULL,
|
|
18
|
+
permissions_json TEXT NOT NULL,
|
|
19
|
+
lifecycle_json TEXT NOT NULL,
|
|
20
|
+
freeze_json TEXT NOT NULL,
|
|
21
|
+
operation_contract_hashes_json TEXT NOT NULL DEFAULT '[]',
|
|
22
|
+
status TEXT NOT NULL,
|
|
23
|
+
promotion_status TEXT NOT NULL
|
|
24
|
+
);
|
|
25
|
+
CREATE TABLE IF NOT EXISTS capability_evidence (
|
|
26
|
+
id TEXT PRIMARY KEY,
|
|
27
|
+
capability_id TEXT NOT NULL,
|
|
28
|
+
kind TEXT NOT NULL,
|
|
29
|
+
artifact_id TEXT NOT NULL,
|
|
30
|
+
sha256 TEXT NOT NULL,
|
|
31
|
+
recorded_at TEXT NOT NULL,
|
|
32
|
+
UNIQUE(capability_id, kind)
|
|
33
33
|
)`);
|
|
34
34
|
try {
|
|
35
35
|
this.db.exec("ALTER TABLE capability ADD COLUMN operation_contract_hashes_json TEXT NOT NULL DEFAULT '[]'");
|
package/dist/change-workflow.js
CHANGED
|
@@ -10,13 +10,13 @@ export class ChangeLedger {
|
|
|
10
10
|
mkdirSync(artifactRoot, { recursive: true });
|
|
11
11
|
this.db = new DatabaseSync(databasePath);
|
|
12
12
|
this.artifactRoot = resolve(artifactRoot);
|
|
13
|
-
this.db.exec(`CREATE TABLE IF NOT EXISTS change_event (
|
|
14
|
-
sequence INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
15
|
-
change_id TEXT NOT NULL,
|
|
16
|
-
at TEXT NOT NULL,
|
|
17
|
-
type TEXT NOT NULL,
|
|
18
|
-
binding_json TEXT NOT NULL,
|
|
19
|
-
payload_json TEXT NOT NULL
|
|
13
|
+
this.db.exec(`CREATE TABLE IF NOT EXISTS change_event (
|
|
14
|
+
sequence INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
15
|
+
change_id TEXT NOT NULL,
|
|
16
|
+
at TEXT NOT NULL,
|
|
17
|
+
type TEXT NOT NULL,
|
|
18
|
+
binding_json TEXT NOT NULL,
|
|
19
|
+
payload_json TEXT NOT NULL
|
|
20
20
|
)`);
|
|
21
21
|
}
|
|
22
22
|
create(binding) {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/cloudpivot-auth.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/dbsweep.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/delivery-graph.js
CHANGED
|
@@ -109,15 +109,15 @@ export class DeliveryLedger {
|
|
|
109
109
|
constructor(databasePath) {
|
|
110
110
|
mkdirSync(dirname(databasePath), { recursive: true });
|
|
111
111
|
this.db = new DatabaseSync(databasePath);
|
|
112
|
-
this.db.exec(`CREATE TABLE IF NOT EXISTS delivery_event (
|
|
113
|
-
sequence INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
114
|
-
delivery_id TEXT NOT NULL,
|
|
115
|
-
at TEXT NOT NULL,
|
|
116
|
-
type TEXT NOT NULL,
|
|
117
|
-
binding_json TEXT NOT NULL,
|
|
118
|
-
payload_json TEXT NOT NULL
|
|
119
|
-
,event_hash TEXT NOT NULL DEFAULT ''
|
|
120
|
-
,previous_hash TEXT NOT NULL DEFAULT ''
|
|
112
|
+
this.db.exec(`CREATE TABLE IF NOT EXISTS delivery_event (
|
|
113
|
+
sequence INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
114
|
+
delivery_id TEXT NOT NULL,
|
|
115
|
+
at TEXT NOT NULL,
|
|
116
|
+
type TEXT NOT NULL,
|
|
117
|
+
binding_json TEXT NOT NULL,
|
|
118
|
+
payload_json TEXT NOT NULL
|
|
119
|
+
,event_hash TEXT NOT NULL DEFAULT ''
|
|
120
|
+
,previous_hash TEXT NOT NULL DEFAULT ''
|
|
121
121
|
)`);
|
|
122
122
|
for (const column of ["event_hash TEXT NOT NULL DEFAULT ''", "previous_hash TEXT NOT NULL DEFAULT ''"]) {
|
|
123
123
|
try {
|
package/dist/dsh-history.js
CHANGED
|
File without changes
|
package/dist/dsh-rpc.js
CHANGED
|
File without changes
|
package/dist/dsh-run.js
CHANGED
|
File without changes
|
|
File without changes
|
|
@@ -12,12 +12,12 @@ export class EnvironmentReleaseLedger {
|
|
|
12
12
|
constructor(databasePath) {
|
|
13
13
|
mkdirSync(dirname(databasePath), { recursive: true });
|
|
14
14
|
this.db = new DatabaseSync(databasePath);
|
|
15
|
-
this.db.exec(`CREATE TABLE IF NOT EXISTS release_event (
|
|
16
|
-
sequence INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
17
|
-
release_id TEXT NOT NULL,
|
|
18
|
-
at TEXT NOT NULL,
|
|
19
|
-
type TEXT NOT NULL,
|
|
20
|
-
payload_json TEXT NOT NULL
|
|
15
|
+
this.db.exec(`CREATE TABLE IF NOT EXISTS release_event (
|
|
16
|
+
sequence INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
17
|
+
release_id TEXT NOT NULL,
|
|
18
|
+
at TEXT NOT NULL,
|
|
19
|
+
type TEXT NOT NULL,
|
|
20
|
+
payload_json TEXT NOT NULL
|
|
21
21
|
)`);
|
|
22
22
|
}
|
|
23
23
|
open(input) {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/families/types.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/host-operations.js
CHANGED
|
File without changes
|
|
@@ -13,20 +13,20 @@ export class HostPackageRegistry {
|
|
|
13
13
|
this.integrityKey = loadIntegrityKey(databasePath, options.integrityKey);
|
|
14
14
|
mkdirSync(dirname(databasePath), { recursive: true });
|
|
15
15
|
this.db = new DatabaseSync(databasePath);
|
|
16
|
-
this.db.exec(`CREATE TABLE IF NOT EXISTS host_package_registry (
|
|
17
|
-
package_id TEXT PRIMARY KEY,
|
|
18
|
-
package_hash TEXT NOT NULL,
|
|
19
|
-
serialized_package TEXT NOT NULL,
|
|
20
|
-
serialized_prepared TEXT NOT NULL,
|
|
21
|
-
plan_binding TEXT NOT NULL,
|
|
22
|
-
environment_binding TEXT NOT NULL,
|
|
23
|
-
baseline_fingerprint TEXT NOT NULL,
|
|
24
|
-
scope_json TEXT NOT NULL,
|
|
25
|
-
projection_json TEXT NOT NULL,
|
|
26
|
-
created_at TEXT NOT NULL,
|
|
27
|
-
namespace_json TEXT NOT NULL,
|
|
28
|
-
record_hash TEXT NOT NULL,
|
|
29
|
-
integrity_mac TEXT NOT NULL
|
|
16
|
+
this.db.exec(`CREATE TABLE IF NOT EXISTS host_package_registry (
|
|
17
|
+
package_id TEXT PRIMARY KEY,
|
|
18
|
+
package_hash TEXT NOT NULL,
|
|
19
|
+
serialized_package TEXT NOT NULL,
|
|
20
|
+
serialized_prepared TEXT NOT NULL,
|
|
21
|
+
plan_binding TEXT NOT NULL,
|
|
22
|
+
environment_binding TEXT NOT NULL,
|
|
23
|
+
baseline_fingerprint TEXT NOT NULL,
|
|
24
|
+
scope_json TEXT NOT NULL,
|
|
25
|
+
projection_json TEXT NOT NULL,
|
|
26
|
+
created_at TEXT NOT NULL,
|
|
27
|
+
namespace_json TEXT NOT NULL,
|
|
28
|
+
record_hash TEXT NOT NULL,
|
|
29
|
+
integrity_mac TEXT NOT NULL
|
|
30
30
|
)`);
|
|
31
31
|
for (const column of [
|
|
32
32
|
"namespace_json TEXT NOT NULL DEFAULT '{}'",
|
|
@@ -38,13 +38,13 @@ export class HostPackageRegistry {
|
|
|
38
38
|
}
|
|
39
39
|
catch { /* already present */ }
|
|
40
40
|
}
|
|
41
|
-
this.db.exec(`CREATE TABLE IF NOT EXISTS host_package_approval_use (
|
|
42
|
-
approval_id TEXT PRIMARY KEY, call_id TEXT NOT NULL UNIQUE, package_hash TEXT NOT NULL,
|
|
43
|
-
expires_at TEXT NOT NULL, consumed_at TEXT NOT NULL
|
|
41
|
+
this.db.exec(`CREATE TABLE IF NOT EXISTS host_package_approval_use (
|
|
42
|
+
approval_id TEXT PRIMARY KEY, call_id TEXT NOT NULL UNIQUE, package_hash TEXT NOT NULL,
|
|
43
|
+
expires_at TEXT NOT NULL, consumed_at TEXT NOT NULL
|
|
44
44
|
)`);
|
|
45
|
-
this.db.exec(`CREATE TABLE IF NOT EXISTS host_package_execution_approval (
|
|
46
|
-
approval_id TEXT PRIMARY KEY, package_id TEXT NOT NULL, package_hash TEXT NOT NULL,
|
|
47
|
-
call_id TEXT NOT NULL, session_id TEXT NOT NULL, issued_at TEXT NOT NULL, consumed_at TEXT
|
|
45
|
+
this.db.exec(`CREATE TABLE IF NOT EXISTS host_package_execution_approval (
|
|
46
|
+
approval_id TEXT PRIMARY KEY, package_id TEXT NOT NULL, package_hash TEXT NOT NULL,
|
|
47
|
+
call_id TEXT NOT NULL, session_id TEXT NOT NULL, issued_at TEXT NOT NULL, consumed_at TEXT
|
|
48
48
|
)`);
|
|
49
49
|
for (const column of ["call_id TEXT", "session_id TEXT"]) {
|
|
50
50
|
try {
|
package/dist/index.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/omc-planning.js
CHANGED
|
File without changes
|
package/dist/omc-review.js
CHANGED
|
File without changes
|
package/dist/omc-validation.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/orphan-cleanup.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "omc-core",
|
|
3
|
-
"version": "0.4.
|
|
4
|
-
"description": "Shared OMC capability kernel: capability contracts, governance, and decoders. Zero DSH dependencies.",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"files": [
|
|
7
|
-
"dist",
|
|
8
|
-
"package.json",
|
|
9
|
-
"README.md",
|
|
10
|
-
"!dist/**/*.js.map",
|
|
11
|
-
"!dist/**/*.d.ts",
|
|
12
|
-
"!dist/**/*.d.ts.map"
|
|
13
|
-
],
|
|
14
|
-
"exports": {
|
|
15
|
-
".": "./dist/index.js",
|
|
16
|
-
"./package.json": "./package.json"
|
|
17
|
-
},
|
|
18
|
-
"scripts": {
|
|
19
|
-
"build": "tsc --project tsconfig.build.json",
|
|
20
|
-
"typecheck": "tsc --noEmit",
|
|
21
|
-
"check:zero-dsh": "node scripts/check-zero-dsh.mjs",
|
|
22
|
-
"verify": "npm run check:zero-dsh && npm run typecheck && npm run build",
|
|
23
|
-
"prepublishOnly": "npm run build"
|
|
24
|
-
},
|
|
25
|
-
"engines": {
|
|
26
|
-
"node": ">=20"
|
|
27
|
-
},
|
|
28
|
-
"devDependencies": {
|
|
29
|
-
"@types/node": "^22.0.0",
|
|
30
|
-
"typescript": "^5.6.0"
|
|
31
|
-
},
|
|
32
|
-
"license": "MIT",
|
|
33
|
-
"repository": {
|
|
34
|
-
"type": "git",
|
|
35
|
-
"url": "https://gitlab.h3yun.com/fuwenbin/oh-my-cpagents.git",
|
|
36
|
-
"directory": "packages/omc-core"
|
|
37
|
-
}
|
|
38
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "omc-core",
|
|
3
|
+
"version": "0.4.16",
|
|
4
|
+
"description": "Shared OMC capability kernel: capability contracts, governance, and decoders. Zero DSH dependencies.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist",
|
|
8
|
+
"package.json",
|
|
9
|
+
"README.md",
|
|
10
|
+
"!dist/**/*.js.map",
|
|
11
|
+
"!dist/**/*.d.ts",
|
|
12
|
+
"!dist/**/*.d.ts.map"
|
|
13
|
+
],
|
|
14
|
+
"exports": {
|
|
15
|
+
".": "./dist/index.js",
|
|
16
|
+
"./package.json": "./package.json"
|
|
17
|
+
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc --project tsconfig.build.json",
|
|
20
|
+
"typecheck": "tsc --noEmit",
|
|
21
|
+
"check:zero-dsh": "node scripts/check-zero-dsh.mjs",
|
|
22
|
+
"verify": "npm run check:zero-dsh && npm run typecheck && npm run build",
|
|
23
|
+
"prepublishOnly": "npm run build"
|
|
24
|
+
},
|
|
25
|
+
"engines": {
|
|
26
|
+
"node": ">=20"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@types/node": "^22.0.0",
|
|
30
|
+
"typescript": "^5.6.0"
|
|
31
|
+
},
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "https://gitlab.h3yun.com/fuwenbin/oh-my-cpagents.git",
|
|
36
|
+
"directory": "packages/omc-core"
|
|
37
|
+
}
|
|
38
|
+
}
|