@vess-id/vess 0.0.0-dev-20260902121045
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 +64 -0
- package/README.md +215 -0
- package/bin/vess.js +2 -0
- package/dist/__mocks__/@napi-rs/keyring.d.ts +9 -0
- package/dist/__mocks__/@napi-rs/keyring.d.ts.map +1 -0
- package/dist/__mocks__/@napi-rs/keyring.js +33 -0
- package/dist/__mocks__/@napi-rs/keyring.js.map +1 -0
- package/dist/__mocks__/node-mac-auth.d.ts +8 -0
- package/dist/__mocks__/node-mac-auth.d.ts.map +1 -0
- package/dist/__mocks__/node-mac-auth.js +29 -0
- package/dist/__mocks__/node-mac-auth.js.map +1 -0
- package/dist/adapter/mcp/http-transport.d.ts +40 -0
- package/dist/adapter/mcp/http-transport.d.ts.map +1 -0
- package/dist/adapter/mcp/http-transport.js +228 -0
- package/dist/adapter/mcp/http-transport.js.map +1 -0
- package/dist/adapter/mcp/mcp-adapter.d.ts +43 -0
- package/dist/adapter/mcp/mcp-adapter.d.ts.map +1 -0
- package/dist/adapter/mcp/mcp-adapter.js +65 -0
- package/dist/adapter/mcp/mcp-adapter.js.map +1 -0
- package/dist/adapter/mcp/mcp-server.factory.d.ts +44 -0
- package/dist/adapter/mcp/mcp-server.factory.d.ts.map +1 -0
- package/dist/adapter/mcp/mcp-server.factory.js +311 -0
- package/dist/adapter/mcp/mcp-server.factory.js.map +1 -0
- package/dist/adapter/mcp/stdio-transport.d.ts +7 -0
- package/dist/adapter/mcp/stdio-transport.d.ts.map +1 -0
- package/dist/adapter/mcp/stdio-transport.js +13 -0
- package/dist/adapter/mcp/stdio-transport.js.map +1 -0
- package/dist/adapter/mcp/transport.d.ts +10 -0
- package/dist/adapter/mcp/transport.d.ts.map +1 -0
- package/dist/adapter/mcp/transport.js +14 -0
- package/dist/adapter/mcp/transport.js.map +1 -0
- package/dist/approval/approval-token.d.ts +23 -0
- package/dist/approval/approval-token.d.ts.map +1 -0
- package/dist/approval/approval-token.js +81 -0
- package/dist/approval/approval-token.js.map +1 -0
- package/dist/audit/audit-dto-mapper.d.ts +29 -0
- package/dist/audit/audit-dto-mapper.d.ts.map +1 -0
- package/dist/audit/audit-dto-mapper.js +61 -0
- package/dist/audit/audit-dto-mapper.js.map +1 -0
- package/dist/audit/audit-logger.d.ts +35 -0
- package/dist/audit/audit-logger.d.ts.map +1 -0
- package/dist/audit/audit-logger.js +67 -0
- package/dist/audit/audit-logger.js.map +1 -0
- package/dist/audit/audit-sync.d.ts +12 -0
- package/dist/audit/audit-sync.d.ts.map +1 -0
- package/dist/audit/audit-sync.js +65 -0
- package/dist/audit/audit-sync.js.map +1 -0
- package/dist/auth/user-authenticator.d.ts +51 -0
- package/dist/auth/user-authenticator.d.ts.map +1 -0
- package/dist/auth/user-authenticator.js +155 -0
- package/dist/auth/user-authenticator.js.map +1 -0
- package/dist/bootstrap/sdk-precheck.d.ts +9 -0
- package/dist/bootstrap/sdk-precheck.d.ts.map +1 -0
- package/dist/bootstrap/sdk-precheck.js +103 -0
- package/dist/bootstrap/sdk-precheck.js.map +1 -0
- package/dist/cli/claude-config-path.d.ts +17 -0
- package/dist/cli/claude-config-path.d.ts.map +1 -0
- package/dist/cli/claude-config-path.js +59 -0
- package/dist/cli/claude-config-path.js.map +1 -0
- package/dist/cli/cli-db.d.ts +12 -0
- package/dist/cli/cli-db.d.ts.map +1 -0
- package/dist/cli/cli-db.js +20 -0
- package/dist/cli/cli-db.js.map +1 -0
- package/dist/cli/cli-utils.d.ts +14 -0
- package/dist/cli/cli-utils.d.ts.map +1 -0
- package/dist/cli/cli-utils.js +57 -0
- package/dist/cli/cli-utils.js.map +1 -0
- package/dist/cli/daemon-utils.d.ts +30 -0
- package/dist/cli/daemon-utils.d.ts.map +1 -0
- package/dist/cli/daemon-utils.js +131 -0
- package/dist/cli/daemon-utils.js.map +1 -0
- package/dist/cli/daemon.d.ts +13 -0
- package/dist/cli/daemon.d.ts.map +1 -0
- package/dist/cli/daemon.js +207 -0
- package/dist/cli/daemon.js.map +1 -0
- package/dist/cli/doctor.d.ts +6 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +136 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/env-delete.d.ts +6 -0
- package/dist/cli/env-delete.d.ts.map +1 -0
- package/dist/cli/env-delete.js +80 -0
- package/dist/cli/env-delete.js.map +1 -0
- package/dist/cli/env-list.d.ts +5 -0
- package/dist/cli/env-list.d.ts.map +1 -0
- package/dist/cli/env-list.js +42 -0
- package/dist/cli/env-list.js.map +1 -0
- package/dist/cli/env-post-integration.d.ts +21 -0
- package/dist/cli/env-post-integration.d.ts.map +1 -0
- package/dist/cli/env-post-integration.js +300 -0
- package/dist/cli/env-post-integration.js.map +1 -0
- package/dist/cli/env-restore.d.ts +15 -0
- package/dist/cli/env-restore.d.ts.map +1 -0
- package/dist/cli/env-restore.js +130 -0
- package/dist/cli/env-restore.js.map +1 -0
- package/dist/cli/env.d.ts +14 -0
- package/dist/cli/env.d.ts.map +1 -0
- package/dist/cli/env.js +182 -0
- package/dist/cli/env.js.map +1 -0
- package/dist/cli/error-handlers.d.ts +13 -0
- package/dist/cli/error-handlers.d.ts.map +1 -0
- package/dist/cli/error-handlers.js +32 -0
- package/dist/cli/error-handlers.js.map +1 -0
- package/dist/cli/hook-check-env.d.ts +12 -0
- package/dist/cli/hook-check-env.d.ts.map +1 -0
- package/dist/cli/hook-check-env.js +117 -0
- package/dist/cli/hook-check-env.js.map +1 -0
- package/dist/cli/hook-session-project.d.ts +10 -0
- package/dist/cli/hook-session-project.d.ts.map +1 -0
- package/dist/cli/hook-session-project.js +206 -0
- package/dist/cli/hook-session-project.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +361 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init-guard.d.ts +13 -0
- package/dist/cli/init-guard.d.ts.map +1 -0
- package/dist/cli/init-guard.js +62 -0
- package/dist/cli/init-guard.js.map +1 -0
- package/dist/cli/init.d.ts +19 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +440 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/install.d.ts +14 -0
- package/dist/cli/install.d.ts.map +1 -0
- package/dist/cli/install.js +183 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/login.d.ts +6 -0
- package/dist/cli/login.d.ts.map +1 -0
- package/dist/cli/login.js +76 -0
- package/dist/cli/login.js.map +1 -0
- package/dist/cli/logs.d.ts +32 -0
- package/dist/cli/logs.d.ts.map +1 -0
- package/dist/cli/logs.js +147 -0
- package/dist/cli/logs.js.map +1 -0
- package/dist/cli/otel-headers.d.ts +12 -0
- package/dist/cli/otel-headers.d.ts.map +1 -0
- package/dist/cli/otel-headers.js +38 -0
- package/dist/cli/otel-headers.js.map +1 -0
- package/dist/cli/project.d.ts +8 -0
- package/dist/cli/project.d.ts.map +1 -0
- package/dist/cli/project.js +102 -0
- package/dist/cli/project.js.map +1 -0
- package/dist/cli/reset.d.ts +8 -0
- package/dist/cli/reset.d.ts.map +1 -0
- package/dist/cli/reset.js +137 -0
- package/dist/cli/reset.js.map +1 -0
- package/dist/cli/run.d.ts +22 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +103 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/start.d.ts +2 -0
- package/dist/cli/start.d.ts.map +1 -0
- package/dist/cli/start.js +29 -0
- package/dist/cli/start.js.map +1 -0
- package/dist/cli/status.d.ts +12 -0
- package/dist/cli/status.d.ts.map +1 -0
- package/dist/cli/status.js +131 -0
- package/dist/cli/status.js.map +1 -0
- package/dist/cli/telemetry-setup.d.ts +27 -0
- package/dist/cli/telemetry-setup.d.ts.map +1 -0
- package/dist/cli/telemetry-setup.js +157 -0
- package/dist/cli/telemetry-setup.js.map +1 -0
- package/dist/cli/uninstall.d.ts +8 -0
- package/dist/cli/uninstall.d.ts.map +1 -0
- package/dist/cli/uninstall.js +110 -0
- package/dist/cli/uninstall.js.map +1 -0
- package/dist/cli/version.d.ts +2 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +10 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/config/config.d.ts +10 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +64 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/constants.d.ts +11 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +14 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/paths.d.ts +9 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +58 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/version.d.ts +3 -0
- package/dist/config/version.d.ts.map +1 -0
- package/dist/config/version.js +80 -0
- package/dist/config/version.js.map +1 -0
- package/dist/core/execution-engine.d.ts +289 -0
- package/dist/core/execution-engine.d.ts.map +1 -0
- package/dist/core/execution-engine.js +1931 -0
- package/dist/core/execution-engine.js.map +1 -0
- package/dist/core/runtime.d.ts +43 -0
- package/dist/core/runtime.d.ts.map +1 -0
- package/dist/core/runtime.js +147 -0
- package/dist/core/runtime.js.map +1 -0
- package/dist/core/sync-scheduler.d.ts +42 -0
- package/dist/core/sync-scheduler.d.ts.map +1 -0
- package/dist/core/sync-scheduler.js +131 -0
- package/dist/core/sync-scheduler.js.map +1 -0
- package/dist/core/types.d.ts +106 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +7 -0
- package/dist/core/types.js.map +1 -0
- package/dist/daemon/service-manager.d.ts +68 -0
- package/dist/daemon/service-manager.d.ts.map +1 -0
- package/dist/daemon/service-manager.js +303 -0
- package/dist/daemon/service-manager.js.map +1 -0
- package/dist/env/env-classifier.d.ts +14 -0
- package/dist/env/env-classifier.d.ts.map +1 -0
- package/dist/env/env-classifier.js +94 -0
- package/dist/env/env-classifier.js.map +1 -0
- package/dist/env/env-parser.d.ts +13 -0
- package/dist/env/env-parser.d.ts.map +1 -0
- package/dist/env/env-parser.js +33 -0
- package/dist/env/env-parser.js.map +1 -0
- package/dist/env/env-profile-store.d.ts +15 -0
- package/dist/env/env-profile-store.d.ts.map +1 -0
- package/dist/env/env-profile-store.js +35 -0
- package/dist/env/env-profile-store.js.map +1 -0
- package/dist/env/env-reference.d.ts +10 -0
- package/dist/env/env-reference.d.ts.map +1 -0
- package/dist/env/env-reference.js +33 -0
- package/dist/env/env-reference.js.map +1 -0
- package/dist/env/env-resolver.d.ts +18 -0
- package/dist/env/env-resolver.d.ts.map +1 -0
- package/dist/env/env-resolver.js +48 -0
- package/dist/env/env-resolver.js.map +1 -0
- package/dist/env/fs-utils.d.ts +9 -0
- package/dist/env/fs-utils.d.ts.map +1 -0
- package/dist/env/fs-utils.js +59 -0
- package/dist/env/fs-utils.js.map +1 -0
- package/dist/env/secret-backend.d.ts +15 -0
- package/dist/env/secret-backend.d.ts.map +1 -0
- package/dist/env/secret-backend.js +24 -0
- package/dist/env/secret-backend.js.map +1 -0
- package/dist/executor/executor-registry.d.ts +22 -0
- package/dist/executor/executor-registry.d.ts.map +1 -0
- package/dist/executor/executor-registry.js +42 -0
- package/dist/executor/executor-registry.js.map +1 -0
- package/dist/executor/process-launcher.d.ts +26 -0
- package/dist/executor/process-launcher.d.ts.map +1 -0
- package/dist/executor/process-launcher.js +98 -0
- package/dist/executor/process-launcher.js.map +1 -0
- package/dist/executor/secret-file.d.ts +28 -0
- package/dist/executor/secret-file.d.ts.map +1 -0
- package/dist/executor/secret-file.js +127 -0
- package/dist/executor/secret-file.js.map +1 -0
- package/dist/gateway/auth.d.ts +26 -0
- package/dist/gateway/auth.d.ts.map +1 -0
- package/dist/gateway/auth.js +66 -0
- package/dist/gateway/auth.js.map +1 -0
- package/dist/gateway/gateway-client.d.ts +363 -0
- package/dist/gateway/gateway-client.d.ts.map +1 -0
- package/dist/gateway/gateway-client.js +611 -0
- package/dist/gateway/gateway-client.js.map +1 -0
- package/dist/identity/agent-identity.d.ts +29 -0
- package/dist/identity/agent-identity.d.ts.map +1 -0
- package/dist/identity/agent-identity.js +54 -0
- package/dist/identity/agent-identity.js.map +1 -0
- package/dist/identity/did-manager.d.ts +17 -0
- package/dist/identity/did-manager.d.ts.map +1 -0
- package/dist/identity/did-manager.js +29 -0
- package/dist/identity/did-manager.js.map +1 -0
- package/dist/identity/key-manager.d.ts +21 -0
- package/dist/identity/key-manager.d.ts.map +1 -0
- package/dist/identity/key-manager.js +126 -0
- package/dist/identity/key-manager.js.map +1 -0
- package/dist/identity/session-key.d.ts +13 -0
- package/dist/identity/session-key.d.ts.map +1 -0
- package/dist/identity/session-key.js +17 -0
- package/dist/identity/session-key.js.map +1 -0
- package/dist/policy/policy-evaluator.d.ts +63 -0
- package/dist/policy/policy-evaluator.d.ts.map +1 -0
- package/dist/policy/policy-evaluator.js +266 -0
- package/dist/policy/policy-evaluator.js.map +1 -0
- package/dist/policy/policy-loader.d.ts +10 -0
- package/dist/policy/policy-loader.d.ts.map +1 -0
- package/dist/policy/policy-loader.js +71 -0
- package/dist/policy/policy-loader.js.map +1 -0
- package/dist/policy/types.d.ts +21 -0
- package/dist/policy/types.d.ts.map +1 -0
- package/dist/policy/types.js +3 -0
- package/dist/policy/types.js.map +1 -0
- package/dist/telemetry/claude-settings.d.ts +67 -0
- package/dist/telemetry/claude-settings.d.ts.map +1 -0
- package/dist/telemetry/claude-settings.js +191 -0
- package/dist/telemetry/claude-settings.js.map +1 -0
- package/dist/telemetry/otel-headers.d.ts +27 -0
- package/dist/telemetry/otel-headers.d.ts.map +1 -0
- package/dist/telemetry/otel-headers.js +33 -0
- package/dist/telemetry/otel-headers.js.map +1 -0
- package/dist/telemetry/project-key.d.ts +12 -0
- package/dist/telemetry/project-key.d.ts.map +1 -0
- package/dist/telemetry/project-key.js +113 -0
- package/dist/telemetry/project-key.js.map +1 -0
- package/dist/utils/credential-errors.d.ts +73 -0
- package/dist/utils/credential-errors.d.ts.map +1 -0
- package/dist/utils/credential-errors.js +90 -0
- package/dist/utils/credential-errors.js.map +1 -0
- package/dist/utils/resource-canonicalizer.d.ts +19 -0
- package/dist/utils/resource-canonicalizer.d.ts.map +1 -0
- package/dist/utils/resource-canonicalizer.js +100 -0
- package/dist/utils/resource-canonicalizer.js.map +1 -0
- package/dist/utils/vc-utils.d.ts +23 -0
- package/dist/utils/vc-utils.d.ts.map +1 -0
- package/dist/utils/vc-utils.js +53 -0
- package/dist/utils/vc-utils.js.map +1 -0
- package/dist/wallet/sqlite.d.ts +4 -0
- package/dist/wallet/sqlite.d.ts.map +1 -0
- package/dist/wallet/sqlite.js +158 -0
- package/dist/wallet/sqlite.js.map +1 -0
- package/dist/wallet/vp-builder.d.ts +26 -0
- package/dist/wallet/vp-builder.d.ts.map +1 -0
- package/dist/wallet/vp-builder.js +55 -0
- package/dist/wallet/vp-builder.js.map +1 -0
- package/dist/wallet/wallet.d.ts +64 -0
- package/dist/wallet/wallet.d.ts.map +1 -0
- package/dist/wallet/wallet.js +179 -0
- package/dist/wallet/wallet.js.map +1 -0
- package/package.json +71 -0
- package/required-sdk-symbols.json +15 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-evaluator.js","sourceRoot":"","sources":["../../src/policy/policy-evaluator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import Database from 'better-sqlite3';
|
|
2
|
+
import { LocalPolicy } from './types';
|
|
3
|
+
import { PermissionRule } from '@vess-id/ai-identity';
|
|
4
|
+
export declare function loadLocalPolicy(policyPath: string): LocalPolicy;
|
|
5
|
+
/**
|
|
6
|
+
* Load synced org policies from SQLite synced_policies table.
|
|
7
|
+
* Returns PermissionRule[] (org policies are allow-only, like VCs).
|
|
8
|
+
*/
|
|
9
|
+
export declare function loadOrgPolicies(db: Database.Database, projectId: string): PermissionRule[];
|
|
10
|
+
//# sourceMappingURL=policy-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-loader.d.ts","sourceRoot":"","sources":["../../src/policy/policy-loader.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,WAAW,EAAmB,MAAM,SAAS,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAU/D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,GAChB,cAAc,EAAE,CAclB"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.loadLocalPolicy = loadLocalPolicy;
|
|
37
|
+
exports.loadOrgPolicies = loadOrgPolicies;
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
function loadLocalPolicy(policyPath) {
|
|
40
|
+
try {
|
|
41
|
+
if (!fs.existsSync(policyPath)) {
|
|
42
|
+
return { v: '1', rules: [] };
|
|
43
|
+
}
|
|
44
|
+
const raw = fs.readFileSync(policyPath, 'utf-8');
|
|
45
|
+
return JSON.parse(raw);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return { v: '1', rules: [] };
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Load synced org policies from SQLite synced_policies table.
|
|
53
|
+
* Returns PermissionRule[] (org policies are allow-only, like VCs).
|
|
54
|
+
*/
|
|
55
|
+
function loadOrgPolicies(db, projectId) {
|
|
56
|
+
try {
|
|
57
|
+
const row = db.prepare('SELECT policy_json FROM synced_policies WHERE project_id = ? ORDER BY synced_at DESC LIMIT 1').get(projectId);
|
|
58
|
+
if (!row)
|
|
59
|
+
return [];
|
|
60
|
+
const parsed = JSON.parse(row.policy_json);
|
|
61
|
+
if (Array.isArray(parsed))
|
|
62
|
+
return parsed;
|
|
63
|
+
if (parsed.rules && Array.isArray(parsed.rules))
|
|
64
|
+
return parsed.rules;
|
|
65
|
+
return [];
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return [];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=policy-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-loader.js","sourceRoot":"","sources":["../../src/policy/policy-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,0CAUC;AAMD,0CAiBC;AAtCD,uCAAwB;AAKxB,SAAgB,eAAe,CAAC,UAAkB;IAChD,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;QAC9B,CAAC;QACD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;IAC9B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAC7B,EAAqB,EACrB,SAAiB;IAEjB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,8FAA8F,CAC/F,CAAC,GAAG,CAAC,SAAS,CAAwC,CAAA;QAEvD,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAA;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,MAA0B,CAAA;QAC5D,IAAI,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC,KAAyB,CAAA;QACxF,OAAO,EAAE,CAAA;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { PermissionRule } from '@vess-id/ai-identity';
|
|
2
|
+
export type PolicySource = 'org' | 'user' | 'system';
|
|
3
|
+
/**
|
|
4
|
+
* Local policy rule — extends PermissionRule with deny support.
|
|
5
|
+
* SDK PermissionRule is 'allow'-only because VCs only express positive permissions.
|
|
6
|
+
* Local policy needs 'deny' to block actions before they reach the Gateway.
|
|
7
|
+
*/
|
|
8
|
+
export interface LocalPolicyRule extends Omit<PermissionRule, 'effect'> {
|
|
9
|
+
effect: 'allow' | 'deny';
|
|
10
|
+
source?: PolicySource;
|
|
11
|
+
}
|
|
12
|
+
export interface LocalPolicy {
|
|
13
|
+
v: string;
|
|
14
|
+
rules: LocalPolicyRule[];
|
|
15
|
+
}
|
|
16
|
+
export interface PolicyEvaluationResult {
|
|
17
|
+
allowed: boolean;
|
|
18
|
+
reason?: string;
|
|
19
|
+
matchedRule?: LocalPolicyRule;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/policy/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAsB,MAAM,sBAAsB,CAAA;AAEzE,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEpD;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC;IACrE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,eAAe,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,eAAe,CAAA;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/policy/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 書き込む環境変数。**ここに列挙したキーだけを触る。**
|
|
3
|
+
* 利用者が自分で足した他の変数は残す。
|
|
4
|
+
*/
|
|
5
|
+
export declare const TELEMETRY_ENV_KEYS: readonly ["CLAUDE_CODE_ENABLE_TELEMETRY", "OTEL_METRICS_EXPORTER", "OTEL_LOGS_EXPORTER", "OTEL_LOG_USER_PROMPTS", "OTEL_LOG_TOOL_DETAILS", "OTEL_EXPORTER_OTLP_PROTOCOL", "OTEL_EXPORTER_OTLP_METRICS_ENDPOINT", "OTEL_EXPORTER_OTLP_LOGS_ENDPOINT", "OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE", "OTEL_EXPORTER_OTLP_HEADERS"];
|
|
6
|
+
export interface ClaudeHook {
|
|
7
|
+
type: string;
|
|
8
|
+
command: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ClaudeHookMatcher {
|
|
11
|
+
matcher?: string;
|
|
12
|
+
hooks?: ClaudeHook[];
|
|
13
|
+
}
|
|
14
|
+
export interface ClaudeHooks {
|
|
15
|
+
PostToolUse?: ClaudeHookMatcher[];
|
|
16
|
+
[event: string]: ClaudeHookMatcher[] | undefined;
|
|
17
|
+
}
|
|
18
|
+
export interface ClaudeSettings {
|
|
19
|
+
otelHeadersHelper?: string;
|
|
20
|
+
hooks?: ClaudeHooks;
|
|
21
|
+
env?: Record<string, string>;
|
|
22
|
+
[key: string]: unknown;
|
|
23
|
+
}
|
|
24
|
+
export interface ExporterConflict {
|
|
25
|
+
key: string;
|
|
26
|
+
current: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Claude Code のグローバル設定ファイルの場所。
|
|
30
|
+
*
|
|
31
|
+
* `CLAUDE_CONFIG_DIR` は複数プロファイル運用で使われる。homedir 決め打ちにすると、
|
|
32
|
+
* 書き込みは成功するのに Claude Code が読まない設定を作ってしまう
|
|
33
|
+
* (`cli/claude-config-path.ts` が `.claude.json` で踏んだのと同じ罠)。
|
|
34
|
+
*/
|
|
35
|
+
export declare function resolveGlobalSettingsPath(): string;
|
|
36
|
+
/**
|
|
37
|
+
* 送信に必要な環境変数一式。
|
|
38
|
+
*
|
|
39
|
+
* API キーはここに入れない。設定ファイルは平文で、バックアップや共有に乗りやすい。
|
|
40
|
+
* キーはキーチェーンに置き、`vess otel-headers` が送信のたびに載せる。
|
|
41
|
+
*/
|
|
42
|
+
export declare function buildTelemetryEnv(options: {
|
|
43
|
+
endpoint: string;
|
|
44
|
+
}): Record<string, string>;
|
|
45
|
+
/**
|
|
46
|
+
* 既に別の送信先が設定されていないかを見る。
|
|
47
|
+
*
|
|
48
|
+
* **黙って上書きしない。** エージェントのテレメトリは送信先を 1 つしか持てないので、
|
|
49
|
+
* 上書きは相手先の監視を止めることと同じ。呼び出し側は利用者に確認する。
|
|
50
|
+
*/
|
|
51
|
+
export declare function detectExporterConflict(env: Record<string, string> | undefined, endpoint: string): ExporterConflict | null;
|
|
52
|
+
/**
|
|
53
|
+
* 設定に送信設定を重ねた**新しいオブジェクト**を返す。入力は変更しない。
|
|
54
|
+
*
|
|
55
|
+
* 触るのは `TELEMETRY_ENV_KEYS` と `otelHeadersHelper` だけ。グローバル設定には
|
|
56
|
+
* 権限・フック・プラグインが同居しているので、丸ごと書き直すと利用者の環境が壊れる。
|
|
57
|
+
*/
|
|
58
|
+
export declare function applyTelemetrySettings(settings: ClaudeSettings, options: {
|
|
59
|
+
endpoint: string;
|
|
60
|
+
helperCommand: string;
|
|
61
|
+
hookCommand: string;
|
|
62
|
+
}): ClaudeSettings & {
|
|
63
|
+
env: Record<string, string>;
|
|
64
|
+
};
|
|
65
|
+
/** `cli/index.ts` のサブコマンド名と対。片方だけ変えると登録済みの設定が孤児になる。 */
|
|
66
|
+
export declare const PROJECT_HOOK_COMMAND = "usage-hook";
|
|
67
|
+
//# sourceMappingURL=claude-settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-settings.d.ts","sourceRoot":"","sources":["../../src/telemetry/claude-settings.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,eAAO,MAAM,kBAAkB,yUAWrB,CAAA;AAYV,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAA;IACjC,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,EAAE,GAAG,SAAS,CAAA;CACjD;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAIlD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAyBvF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACvC,QAAQ,EAAE,MAAM,GACf,gBAAgB,GAAG,IAAI,CAYzB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACxE,cAAc,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAelD;AAgCD,uDAAuD;AACvD,eAAO,MAAM,oBAAoB,eAAe,CAAA"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.PROJECT_HOOK_COMMAND = exports.TELEMETRY_ENV_KEYS = void 0;
|
|
37
|
+
exports.resolveGlobalSettingsPath = resolveGlobalSettingsPath;
|
|
38
|
+
exports.buildTelemetryEnv = buildTelemetryEnv;
|
|
39
|
+
exports.detectExporterConflict = detectExporterConflict;
|
|
40
|
+
exports.applyTelemetrySettings = applyTelemetrySettings;
|
|
41
|
+
const os = __importStar(require("os"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
/**
|
|
44
|
+
* Claude Code のグローバル設定に、aidentity へテレメトリを送る設定を書き込む部分。
|
|
45
|
+
*
|
|
46
|
+
* 純粋な組み立てと判定だけを持ち、ファイル I/O は `cli/telemetry-setup.ts` が扱う。
|
|
47
|
+
* 利用者の実設定を書き換える処理なので、壊さないことの確認をファイルシステム抜きで
|
|
48
|
+
* 回せるようにしてある。
|
|
49
|
+
*
|
|
50
|
+
* 設計: docs/specs/2026-08-28-agent-usage-analytics-design.md §9
|
|
51
|
+
*/
|
|
52
|
+
/** 受信口のパス。`telemetry-ingest.controller.ts` の `@Controller('telemetry/v1')` と対。 */
|
|
53
|
+
const METRICS_PATH = '/api/telemetry/v1/metrics';
|
|
54
|
+
const LOGS_PATH = '/api/telemetry/v1/logs';
|
|
55
|
+
/**
|
|
56
|
+
* 書き込む環境変数。**ここに列挙したキーだけを触る。**
|
|
57
|
+
* 利用者が自分で足した他の変数は残す。
|
|
58
|
+
*/
|
|
59
|
+
exports.TELEMETRY_ENV_KEYS = [
|
|
60
|
+
'CLAUDE_CODE_ENABLE_TELEMETRY',
|
|
61
|
+
'OTEL_METRICS_EXPORTER',
|
|
62
|
+
'OTEL_LOGS_EXPORTER',
|
|
63
|
+
'OTEL_LOG_USER_PROMPTS',
|
|
64
|
+
'OTEL_LOG_TOOL_DETAILS',
|
|
65
|
+
'OTEL_EXPORTER_OTLP_PROTOCOL',
|
|
66
|
+
'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT',
|
|
67
|
+
'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT',
|
|
68
|
+
'OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE',
|
|
69
|
+
'OTEL_EXPORTER_OTLP_HEADERS',
|
|
70
|
+
];
|
|
71
|
+
/**
|
|
72
|
+
* 送信先が既に設定されていないかを見るキー。汎用の `OTEL_EXPORTER_OTLP_ENDPOINT` を
|
|
73
|
+
* 先に見るのは、シグナル別の指定より広く効くため。
|
|
74
|
+
*/
|
|
75
|
+
const EXPORTER_ENDPOINT_KEYS = [
|
|
76
|
+
'OTEL_EXPORTER_OTLP_ENDPOINT',
|
|
77
|
+
'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT',
|
|
78
|
+
'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT',
|
|
79
|
+
];
|
|
80
|
+
/**
|
|
81
|
+
* Claude Code のグローバル設定ファイルの場所。
|
|
82
|
+
*
|
|
83
|
+
* `CLAUDE_CONFIG_DIR` は複数プロファイル運用で使われる。homedir 決め打ちにすると、
|
|
84
|
+
* 書き込みは成功するのに Claude Code が読まない設定を作ってしまう
|
|
85
|
+
* (`cli/claude-config-path.ts` が `.claude.json` で踏んだのと同じ罠)。
|
|
86
|
+
*/
|
|
87
|
+
function resolveGlobalSettingsPath() {
|
|
88
|
+
const configDir = process.env.CLAUDE_CONFIG_DIR?.trim();
|
|
89
|
+
if (configDir)
|
|
90
|
+
return path.join(configDir, 'settings.json');
|
|
91
|
+
return path.join(os.homedir(), '.claude', 'settings.json');
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* 送信に必要な環境変数一式。
|
|
95
|
+
*
|
|
96
|
+
* API キーはここに入れない。設定ファイルは平文で、バックアップや共有に乗りやすい。
|
|
97
|
+
* キーはキーチェーンに置き、`vess otel-headers` が送信のたびに載せる。
|
|
98
|
+
*/
|
|
99
|
+
function buildTelemetryEnv(options) {
|
|
100
|
+
const base = options.endpoint.replace(/\/+$/, '');
|
|
101
|
+
return {
|
|
102
|
+
CLAUDE_CODE_ENABLE_TELEMETRY: '1',
|
|
103
|
+
OTEL_METRICS_EXPORTER: 'otlp',
|
|
104
|
+
// ツール利用はメトリクスに無くイベント側にしかないので、logs も必須
|
|
105
|
+
OTEL_LOGS_EXPORTER: 'otlp',
|
|
106
|
+
// 🔴 入力の本文を送る。既定は `<REDACTED>` で長さしか届かず、
|
|
107
|
+
// 「どのような入力でどのツールを使ったか」が読めないため有効にする
|
|
108
|
+
OTEL_LOG_USER_PROMPTS: '1',
|
|
109
|
+
// 🔴 ツールに渡した引数を送る。既定はサイズだけで、何をしたかが読めない。
|
|
110
|
+
//
|
|
111
|
+
// 🪤 `OTEL_LOG_TOOL_CONTENT` は**足さない**。あちらはツールの出力で、
|
|
112
|
+
// `cat .env` の結果が本人の自覚なく飛ぶ。受信側でも落としている (判断 5-3)
|
|
113
|
+
OTEL_LOG_TOOL_DETAILS: '1',
|
|
114
|
+
// 受信口は JSON しか解さない (protobuf は 415 で断る)
|
|
115
|
+
OTEL_EXPORTER_OTLP_PROTOCOL: 'http/json',
|
|
116
|
+
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: `${base}${METRICS_PATH}`,
|
|
117
|
+
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT: `${base}${LOGS_PATH}`,
|
|
118
|
+
// 累積で送ると受信側が 400 で拒否する
|
|
119
|
+
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: 'delta',
|
|
120
|
+
// 静的ヘッダーは空にし、otelHeadersHelper の出力だけを使う
|
|
121
|
+
OTEL_EXPORTER_OTLP_HEADERS: '',
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* 既に別の送信先が設定されていないかを見る。
|
|
126
|
+
*
|
|
127
|
+
* **黙って上書きしない。** エージェントのテレメトリは送信先を 1 つしか持てないので、
|
|
128
|
+
* 上書きは相手先の監視を止めることと同じ。呼び出し側は利用者に確認する。
|
|
129
|
+
*/
|
|
130
|
+
function detectExporterConflict(env, endpoint) {
|
|
131
|
+
if (!env)
|
|
132
|
+
return null;
|
|
133
|
+
const ours = endpoint.replace(/\/+$/, '');
|
|
134
|
+
for (const key of EXPORTER_ENDPOINT_KEYS) {
|
|
135
|
+
const current = env[key]?.trim();
|
|
136
|
+
if (!current)
|
|
137
|
+
continue;
|
|
138
|
+
if (current.startsWith(ours))
|
|
139
|
+
continue;
|
|
140
|
+
return { key, current };
|
|
141
|
+
}
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* 設定に送信設定を重ねた**新しいオブジェクト**を返す。入力は変更しない。
|
|
146
|
+
*
|
|
147
|
+
* 触るのは `TELEMETRY_ENV_KEYS` と `otelHeadersHelper` だけ。グローバル設定には
|
|
148
|
+
* 権限・フック・プラグインが同居しているので、丸ごと書き直すと利用者の環境が壊れる。
|
|
149
|
+
*/
|
|
150
|
+
function applyTelemetrySettings(settings, options) {
|
|
151
|
+
const env = { ...(settings.env ?? {}) };
|
|
152
|
+
// 汎用の送信先を残すとシグナル別の指定と競合する。こちらへ切り替える以上、
|
|
153
|
+
// 前の送信先とその認証ヘッダーは消す (他所向けのキーが載ったまま飛ぶのを防ぐ)
|
|
154
|
+
delete env.OTEL_EXPORTER_OTLP_ENDPOINT;
|
|
155
|
+
Object.assign(env, buildTelemetryEnv({ endpoint: options.endpoint }));
|
|
156
|
+
return {
|
|
157
|
+
...settings,
|
|
158
|
+
otelHeadersHelper: options.helperCommand,
|
|
159
|
+
hooks: applyProjectHook(settings.hooks, options.hookCommand),
|
|
160
|
+
env,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* セッションの移動を申告するフックを `PostToolUse` に足す (判断 4-5)。
|
|
165
|
+
*
|
|
166
|
+
* 🔴 **利用者のフックを壊さない。** hooks はプロジェクト固有の検査や整形が
|
|
167
|
+
* 同居する場所で、丸ごと置き換えるとそれらが消える。自分の 1 件だけを
|
|
168
|
+
* 入れ替え、他はそのまま残す。
|
|
169
|
+
*
|
|
170
|
+
* matcher を `Bash` に絞るのは、作業ディレクトリを変えられるのが Bash だけで、
|
|
171
|
+
* かつフックがツール呼び出しごとにプロセスを 1 つ増やすため。
|
|
172
|
+
*/
|
|
173
|
+
function applyProjectHook(hooks, command) {
|
|
174
|
+
const next = { ...(hooks ?? {}) };
|
|
175
|
+
const existing = Array.isArray(next.PostToolUse) ? next.PostToolUse : [];
|
|
176
|
+
const others = existing
|
|
177
|
+
.map(matcher => ({
|
|
178
|
+
...matcher,
|
|
179
|
+
hooks: (matcher.hooks ?? []).filter(hook => !isProjectHook(hook.command)),
|
|
180
|
+
}))
|
|
181
|
+
.filter(matcher => (matcher.hooks ?? []).length > 0);
|
|
182
|
+
next.PostToolUse = [...others, { matcher: 'Bash', hooks: [{ type: 'command', command }] }];
|
|
183
|
+
return next;
|
|
184
|
+
}
|
|
185
|
+
/** 自分が書いたフックかどうか。パスは端末ごとに違うのでコマンド名で見る。 */
|
|
186
|
+
function isProjectHook(command) {
|
|
187
|
+
return typeof command === 'string' && command.includes(exports.PROJECT_HOOK_COMMAND);
|
|
188
|
+
}
|
|
189
|
+
/** `cli/index.ts` のサブコマンド名と対。片方だけ変えると登録済みの設定が孤児になる。 */
|
|
190
|
+
exports.PROJECT_HOOK_COMMAND = 'usage-hook';
|
|
191
|
+
//# sourceMappingURL=claude-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-settings.js","sourceRoot":"","sources":["../../src/telemetry/claude-settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* テレメトリ送信に載せる HTTP ヘッダー。
|
|
3
|
+
*
|
|
4
|
+
* プロジェクト識別子をヘッダーで運ぶのは、コーディングエージェントのテレメトリに
|
|
5
|
+
* 作業ディレクトリやリポジトリを示す属性が無いため。サーバー側はここに載ってきた値を
|
|
6
|
+
* 読むだけで、推測しない。
|
|
7
|
+
*
|
|
8
|
+
* 設計: docs/specs/2026-08-28-agent-usage-analytics-design.md §4
|
|
9
|
+
*/
|
|
10
|
+
export declare const API_KEY_HEADER = "X-API-Key";
|
|
11
|
+
/**
|
|
12
|
+
* 🔴 受信側の `PROJECT_HEADER`
|
|
13
|
+
* (`packages/api/src/telemetry-ingest/telemetry.constants.ts`) と**同じ名前**。
|
|
14
|
+
* パッケージが別なので定数は共有できず、両方を直す必要がある。
|
|
15
|
+
*
|
|
16
|
+
* HTTP ヘッダーは大文字小文字を問わないため綴りの違いは問題にならないが、
|
|
17
|
+
* **名前そのものを変えると片側だけ直したときに気づけない** — 送信は成功し続け、
|
|
18
|
+
* 受信側は識別子を読めないまま全データを「未分類」に落とす。
|
|
19
|
+
*/
|
|
20
|
+
export declare const PROJECT_HEADER = "X-Aidentity-Project";
|
|
21
|
+
/** `vess otel-headers` が読む環境変数。CI や検証用の逃げ道として残す。 */
|
|
22
|
+
export declare const TELEMETRY_API_KEY_ENV = "AIDENTITY_TELEMETRY_API_KEY";
|
|
23
|
+
export declare function buildOtelHeaders(input: {
|
|
24
|
+
projectKey: string;
|
|
25
|
+
apiKey: string;
|
|
26
|
+
}): Record<string, string>;
|
|
27
|
+
//# sourceMappingURL=otel-headers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel-headers.d.ts","sourceRoot":"","sources":["../../src/telemetry/otel-headers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,cAAc,CAAA;AAEzC;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,wBAAwB,CAAA;AAEnD,oDAAoD;AACpD,eAAO,MAAM,qBAAqB,gCAAgC,CAAA;AAElE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKzB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TELEMETRY_API_KEY_ENV = exports.PROJECT_HEADER = exports.API_KEY_HEADER = void 0;
|
|
4
|
+
exports.buildOtelHeaders = buildOtelHeaders;
|
|
5
|
+
/**
|
|
6
|
+
* テレメトリ送信に載せる HTTP ヘッダー。
|
|
7
|
+
*
|
|
8
|
+
* プロジェクト識別子をヘッダーで運ぶのは、コーディングエージェントのテレメトリに
|
|
9
|
+
* 作業ディレクトリやリポジトリを示す属性が無いため。サーバー側はここに載ってきた値を
|
|
10
|
+
* 読むだけで、推測しない。
|
|
11
|
+
*
|
|
12
|
+
* 設計: docs/specs/2026-08-28-agent-usage-analytics-design.md §4
|
|
13
|
+
*/
|
|
14
|
+
exports.API_KEY_HEADER = 'X-API-Key';
|
|
15
|
+
/**
|
|
16
|
+
* 🔴 受信側の `PROJECT_HEADER`
|
|
17
|
+
* (`packages/api/src/telemetry-ingest/telemetry.constants.ts`) と**同じ名前**。
|
|
18
|
+
* パッケージが別なので定数は共有できず、両方を直す必要がある。
|
|
19
|
+
*
|
|
20
|
+
* HTTP ヘッダーは大文字小文字を問わないため綴りの違いは問題にならないが、
|
|
21
|
+
* **名前そのものを変えると片側だけ直したときに気づけない** — 送信は成功し続け、
|
|
22
|
+
* 受信側は識別子を読めないまま全データを「未分類」に落とす。
|
|
23
|
+
*/
|
|
24
|
+
exports.PROJECT_HEADER = 'X-Aidentity-Project';
|
|
25
|
+
/** `vess otel-headers` が読む環境変数。CI や検証用の逃げ道として残す。 */
|
|
26
|
+
exports.TELEMETRY_API_KEY_ENV = 'AIDENTITY_TELEMETRY_API_KEY';
|
|
27
|
+
function buildOtelHeaders(input) {
|
|
28
|
+
return {
|
|
29
|
+
[exports.API_KEY_HEADER]: input.apiKey,
|
|
30
|
+
[exports.PROJECT_HEADER]: input.projectKey,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=otel-headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel-headers.js","sourceRoot":"","sources":["../../src/telemetry/otel-headers.ts"],"names":[],"mappings":";;;AAyBA,4CAQC;AAjCD;;;;;;;;GAQG;AACU,QAAA,cAAc,GAAG,WAAW,CAAA;AAEzC;;;;;;;;GAQG;AACU,QAAA,cAAc,GAAG,qBAAqB,CAAA;AAEnD,oDAAoD;AACvC,QAAA,qBAAqB,GAAG,6BAA6B,CAAA;AAElE,SAAgB,gBAAgB,CAAC,KAGhC;IACC,OAAO;QACL,CAAC,sBAAc,CAAC,EAAE,KAAK,CAAC,MAAM;QAC9B,CAAC,sBAAc,CAAC,EAAE,KAAK,CAAC,UAAU;KACnC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 作業ディレクトリからプロジェクト識別子を決める。
|
|
3
|
+
*
|
|
4
|
+
* ディレクトリ名ではなく git remote を使うのは、worktree・クローン先のパス違い・
|
|
5
|
+
* ディレクトリ改名で同じリポジトリが別プロジェクトに割れるのを防ぐため。
|
|
6
|
+
*
|
|
7
|
+
* 設計: docs/specs/2026-08-28-agent-usage-analytics-design.md 判断 4-2
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveProjectKey(options?: {
|
|
10
|
+
cwd?: string;
|
|
11
|
+
}): string;
|
|
12
|
+
//# sourceMappingURL=project-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-key.d.ts","sourceRoot":"","sources":["../../src/telemetry/project-key.ts"],"names":[],"mappings":"AAiEA;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAQxE"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.resolveProjectKey = resolveProjectKey;
|
|
37
|
+
const child_process_1 = require("child_process");
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
/**
|
|
40
|
+
* git 管理外の作業に付ける接頭辞。リポジトリ由来の識別子と混ざらないよう分けておき、
|
|
41
|
+
* console 側で「リポジトリに紐づかない作業」として別扱いできるようにする。
|
|
42
|
+
*/
|
|
43
|
+
const LOCAL_PREFIX = 'local:';
|
|
44
|
+
/** `agent_usage_events.project_key` のカラム長に合わせる。 */
|
|
45
|
+
const MAX_LENGTH = 255;
|
|
46
|
+
/** helper は送信のたびに呼ばれるので、git が固まっても送信を止めない。 */
|
|
47
|
+
const GIT_TIMEOUT_MS = 2000;
|
|
48
|
+
/**
|
|
49
|
+
* remote URL から `owner/repo` を取り出す。
|
|
50
|
+
*
|
|
51
|
+
* 対応する書式:
|
|
52
|
+
* git@github.com:owner/repo.git
|
|
53
|
+
* https://github.com/owner/repo(.git)
|
|
54
|
+
* https://user:token@github.com/owner/repo.git
|
|
55
|
+
* ssh://git@host:2222/owner/repo.git
|
|
56
|
+
*/
|
|
57
|
+
function extractRepoPath(remote) {
|
|
58
|
+
const trimmed = remote.trim();
|
|
59
|
+
if (trimmed.length === 0)
|
|
60
|
+
return null;
|
|
61
|
+
let rest;
|
|
62
|
+
if (/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//.test(trimmed)) {
|
|
63
|
+
// scheme://[userinfo@]host[:port]/path — 認証情報とポートは識別子に含めない
|
|
64
|
+
const afterScheme = trimmed.replace(/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//, '');
|
|
65
|
+
const slash = afterScheme.indexOf('/');
|
|
66
|
+
if (slash === -1)
|
|
67
|
+
return null;
|
|
68
|
+
rest = afterScheme.slice(slash + 1);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
// scp 形式 user@host:path。Windows のドライブレター (C:\...) と紛れないよう
|
|
72
|
+
// `@` を必須にしている
|
|
73
|
+
const match = /^[^/@]+@[^:/]+:(.*)$/.exec(trimmed);
|
|
74
|
+
if (!match)
|
|
75
|
+
return null;
|
|
76
|
+
rest = match[1];
|
|
77
|
+
}
|
|
78
|
+
const repoPath = rest
|
|
79
|
+
.replace(/\.git$/, '')
|
|
80
|
+
.replace(/^\/+/, '')
|
|
81
|
+
.replace(/\/+$/, '');
|
|
82
|
+
return repoPath.length > 0 ? repoPath : null;
|
|
83
|
+
}
|
|
84
|
+
function readOriginRemote(cwd) {
|
|
85
|
+
try {
|
|
86
|
+
return (0, child_process_1.execFileSync)('git', ['remote', 'get-url', 'origin'], {
|
|
87
|
+
cwd,
|
|
88
|
+
encoding: 'utf8',
|
|
89
|
+
timeout: GIT_TIMEOUT_MS,
|
|
90
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// git が無い / リポジトリでない / origin が無い。いずれもフォールバックで扱う
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* 作業ディレクトリからプロジェクト識別子を決める。
|
|
100
|
+
*
|
|
101
|
+
* ディレクトリ名ではなく git remote を使うのは、worktree・クローン先のパス違い・
|
|
102
|
+
* ディレクトリ改名で同じリポジトリが別プロジェクトに割れるのを防ぐため。
|
|
103
|
+
*
|
|
104
|
+
* 設計: docs/specs/2026-08-28-agent-usage-analytics-design.md 判断 4-2
|
|
105
|
+
*/
|
|
106
|
+
function resolveProjectKey(options = {}) {
|
|
107
|
+
const cwd = options.cwd ?? process.cwd();
|
|
108
|
+
const remote = readOriginRemote(cwd);
|
|
109
|
+
const repoPath = remote ? extractRepoPath(remote) : null;
|
|
110
|
+
const key = repoPath ?? `${LOCAL_PREFIX}${path.basename(cwd)}`;
|
|
111
|
+
return key.slice(0, MAX_LENGTH);
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=project-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-key.js","sourceRoot":"","sources":["../../src/telemetry/project-key.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyEA,8CAQC;AAjFD,iDAA4C;AAC5C,2CAA4B;AAE5B;;;GAGG;AACH,MAAM,YAAY,GAAG,QAAQ,CAAA;AAE7B,mDAAmD;AACnD,MAAM,UAAU,GAAG,GAAG,CAAA;AAEtB,8CAA8C;AAC9C,MAAM,cAAc,GAAG,IAAI,CAAA;AAE3B;;;;;;;;GAQG;AACH,SAAS,eAAe,CAAC,MAAc;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAErC,IAAI,IAAY,CAAA;IAChB,IAAI,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,2DAA2D;QAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAA;QACxE,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;QAC7B,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IACrC,CAAC;SAAM,CAAC;QACN,0DAA0D;QAC1D,eAAe;QACf,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClD,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QACvB,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI;SAClB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAEtB,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;AAC9C,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,CAAC;QACH,OAAO,IAAA,4BAAY,EAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;YAC1D,GAAG;YACH,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,cAAc;YACvB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,iDAAiD;QACjD,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,UAA4B,EAAE;IAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IAExC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAExD,MAAM,GAAG,GAAG,QAAQ,IAAI,GAAG,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAA;IAC9D,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;AACjC,CAAC"}
|