graphlin 0.1.3 → 0.2.0
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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +12 -3
- package/docs/decision-service.md +393 -0
- package/docs/extension-authoring.md +553 -0
- package/docs/model-api.md +293 -0
- package/docs/usage.md +465 -0
- package/docs/visualizer-views.md +199 -0
- package/node_modules/@vscode/tree-sitter-wasm/LICENSE +21 -0
- package/node_modules/@vscode/tree-sitter-wasm/README.md +36 -0
- package/node_modules/@vscode/tree-sitter-wasm/SECURITY.md +41 -0
- package/node_modules/@vscode/tree-sitter-wasm/cgmanifest.json +16 -0
- package/node_modules/@vscode/tree-sitter-wasm/package.json +42 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-bash.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-c-sharp.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-cpp.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-css.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-go.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-ini.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-java.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-javascript.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-php.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-powershell.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-python.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-regex.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-ruby.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-rust.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-tsx.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-typescript.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter.js +4075 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/web-tree-sitter.d.ts +1027 -0
- package/package.json +74 -9
- package/plugin.json +4 -2
- package/runtime/core/evidence.mjs +43 -9
- package/runtime/core/graph.mjs +11 -6
- package/runtime/core/privacy.mjs +1 -0
- package/runtime/daemon/auth.mjs +7 -3
- package/runtime/daemon/diagnostics.mjs +1 -1
- package/runtime/daemon/extension-api.mjs +203 -0
- package/runtime/daemon/lineage.mjs +70 -0
- package/runtime/daemon/manager.mjs +9 -6
- package/runtime/daemon/model-api.mjs +728 -0
- package/runtime/daemon/model-persistence.mjs +220 -0
- package/runtime/daemon/server.mjs +70 -12
- package/runtime/daemon/settings.mjs +11 -3
- package/runtime/decisions/broker.mjs +349 -0
- package/runtime/decisions/contracts.mjs +179 -0
- package/runtime/decisions/evaluation.mjs +305 -0
- package/runtime/decisions/faults.mjs +32 -0
- package/runtime/decisions/index.mjs +818 -0
- package/runtime/decisions/profiles.mjs +93 -0
- package/runtime/decisions/questions.mjs +268 -0
- package/runtime/discovery/index.mjs +2 -0
- package/runtime/discovery/inventory.mjs +160 -0
- package/runtime/discovery/parser.mjs +40 -0
- package/runtime/discovery/structure.mjs +232 -0
- package/runtime/extensions/contracts.mjs +59 -0
- package/runtime/extensions/frame.mjs +64 -0
- package/runtime/extensions/index.mjs +9 -0
- package/runtime/extensions/manifest.mjs +95 -0
- package/runtime/extensions/packages.mjs +222 -0
- package/runtime/extensions/profiles.mjs +36 -0
- package/runtime/extensions/projection.mjs +130 -0
- package/runtime/extensions/registry.mjs +285 -0
- package/runtime/extensions/scene.mjs +105 -0
- package/runtime/extensions/sdk.d.ts +205 -0
- package/runtime/extensions/sdk.mjs +88 -0
- package/runtime/jev/index.mjs +13 -777
- package/runtime/jev/provider.mjs +101 -0
- package/runtime/jev/questions.mjs +16 -258
- package/runtime/jev/wire.mjs +17 -25
- package/runtime/model/changes.mjs +42 -0
- package/runtime/model/history.mjs +124 -0
- package/runtime/model/index.mjs +2 -0
- package/runtime/model/project-model.mjs +889 -0
- package/runtime/model/records.mjs +239 -0
- package/runtime/pipeline.mjs +127 -48
- package/runtime/platform.mjs +254 -0
- package/runtime/visualizers/blocks.mjs +5 -0
- package/runtime/visualizers/c4.mjs +52 -0
- package/runtime/visualizers/changes.mjs +24 -0
- package/runtime/visualizers/code.mjs +5 -0
- package/runtime/visualizers/index.mjs +23 -0
- package/runtime/visualizers/structure.mjs +120 -0
- package/runtime/visualizers/timeline.mjs +66 -0
- package/runtime/web/app.js +225 -63
- package/runtime/web/extension-frame.js +128 -0
- package/runtime/web/index.html +36 -1
- package/runtime/web/model-client.js +162 -0
- package/runtime/web/platform.js +337 -0
- package/runtime/web/scene.js +111 -0
- package/runtime/web/style.css +49 -0
- package/schemas/graph.schema.json +4 -1
- package/scripts/arguments.mjs +5 -1
- package/scripts/build-packages.mjs +6 -2
- package/scripts/control.mjs +1 -1
- package/scripts/daemon.mjs +2 -1
- package/scripts/extensions.mjs +44 -0
- package/scripts/graphlin.mjs +23 -3
- package/scripts/onboarding.mjs +10 -3
- package/scripts/validate-packages.mjs +54 -8
|
@@ -33,9 +33,10 @@ function validateRuntime() {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
function validateExisting(current, options) {
|
|
36
|
-
const { allowSource, persistEvidence, displayEvidence } = resolvePolicy(options, { current: current.policy });
|
|
36
|
+
const { allowSource, localSource, persistEvidence, displayEvidence } = resolvePolicy(options, { current: current.policy });
|
|
37
37
|
const { mode = 'live', port = 0 } = options;
|
|
38
38
|
if (current.mode !== mode || current.policy.transmitSource !== Boolean(allowSource) ||
|
|
39
|
+
current.policy.readSource !== Boolean(allowSource || localSource) ||
|
|
39
40
|
current.policy.persistEvidence !== Boolean(persistEvidence) ||
|
|
40
41
|
current.policy.displayEvidence !== Boolean(displayEvidence)) throw runtimeError('policy_restart_required');
|
|
41
42
|
if (port && port !== current.port) throw runtimeError('port_restart_required');
|
|
@@ -90,11 +91,11 @@ async function stopInstance(paths, instanceId) {
|
|
|
90
91
|
* instance closes or the caller aborts. Abort never stops a replacement owner.
|
|
91
92
|
*/
|
|
92
93
|
export async function runForeground({ projectRoot, dataDir = defaultDataDir(), signal,
|
|
93
|
-
allowSource, persistEvidence, displayEvidence, mode = 'live', port = 0 } = {}, onReady = () => {}) {
|
|
94
|
+
allowSource, localSource, persistEvidence, displayEvidence, mode = 'live', port = 0 } = {}, onReady = () => {}) {
|
|
94
95
|
validateRuntime();
|
|
95
96
|
if (signal?.aborted) return;
|
|
96
97
|
const paths = await projectPaths(projectRoot, dataDir);
|
|
97
|
-
const options = { allowSource, persistEvidence, displayEvidence, mode, port };
|
|
98
|
+
const options = { allowSource, localSource, persistEvidence, displayEvidence, mode, port };
|
|
98
99
|
let server, launch, interrupted;
|
|
99
100
|
const interruption = new Promise(resolve => { interrupted = resolve; });
|
|
100
101
|
const interrupt = () => interrupted();
|
|
@@ -110,7 +111,8 @@ export async function runForeground({ projectRoot, dataDir = defaultDataDir(), s
|
|
|
110
111
|
const demo = mode === 'demo' ? await import('./demo.mjs') : null;
|
|
111
112
|
try {
|
|
112
113
|
server = await startServer({ projectRoot: paths.projectRoot, dataDir: paths.dataDir, mode, port,
|
|
113
|
-
policy: {
|
|
114
|
+
policy: { readSource: Boolean(policy.localSource || policy.allowSource),
|
|
115
|
+
transmitSource: policy.allowSource, persistEvidence: policy.persistEvidence,
|
|
114
116
|
displayEvidence: policy.displayEvidence },
|
|
115
117
|
apiKey: policy.allowSource ? process.env.TYPESAFE_API_KEY ?? settings.apiKey : undefined,
|
|
116
118
|
decisionService: demo?.demoDecisionService() });
|
|
@@ -155,11 +157,11 @@ export async function runForeground({ projectRoot, dataDir = defaultDataDir(), s
|
|
|
155
157
|
// Detached operation is reserved for an explicit CLI --background request or
|
|
156
158
|
// MCP. The normal interactive CLI uses runForeground instead.
|
|
157
159
|
export async function startDaemon({ projectRoot, dataDir = defaultDataDir(), background = true,
|
|
158
|
-
allowSource, persistEvidence, displayEvidence, mode = 'live', port = 0 } = {}) {
|
|
160
|
+
allowSource, localSource, persistEvidence, displayEvidence, mode = 'live', port = 0 } = {}) {
|
|
159
161
|
validateRuntime();
|
|
160
162
|
if (background !== true) throw runtimeError('background_required');
|
|
161
163
|
const paths = await projectPaths(projectRoot, dataDir);
|
|
162
|
-
const options = { allowSource, persistEvidence, displayEvidence, mode, port };
|
|
164
|
+
const options = { allowSource, localSource, persistEvidence, displayEvidence, mode, port };
|
|
163
165
|
const existing = await daemonStatus({ projectRoot: paths.projectRoot, dataDir: paths.dataDir });
|
|
164
166
|
if (existing.running) return { ...await existingLaunch(paths, existing, options), foreground: false };
|
|
165
167
|
const settings = mode === 'demo' ? {} : await readSettings(paths);
|
|
@@ -167,6 +169,7 @@ export async function startDaemon({ projectRoot, dataDir = defaultDataDir(), bac
|
|
|
167
169
|
await projectPaths(projectRoot, dataDir, { create: true });
|
|
168
170
|
const args = [worker, '--project', paths.projectRoot, '--data-dir', paths.dataDir, '--mode', mode, '--port', String(port)];
|
|
169
171
|
if (policy.allowSource) args.push('--allow-source');
|
|
172
|
+
else if (policy.localSource) args.push('--local-source');
|
|
170
173
|
if (policy.persistEvidence) args.push('--persist-evidence');
|
|
171
174
|
if (!policy.displayEvidence) args.push('--no-display-evidence');
|
|
172
175
|
const env = { ...process.env };
|