@aligndottech/cli 0.63.0 → 0.64.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/dist/cli.d.ts +2 -2
- package/dist/cli.js +6 -6
- package/dist/cli.js.map +1 -1
- package/dist/commands/adjudicate.d.ts +3 -3
- package/dist/commands/capture.js +2 -2
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/check.d.ts +1 -1
- package/dist/commands/check.js +30 -30
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/connect-agents.d.ts +4 -2
- package/dist/commands/connect-agents.d.ts.map +1 -1
- package/dist/commands/connect-agents.js +7 -7
- package/dist/commands/connect-agents.js.map +1 -1
- package/dist/commands/connect.d.ts +1 -1
- package/dist/commands/connector/index.js +1 -1
- package/dist/commands/connector/index.js.map +1 -1
- package/dist/commands/context.d.ts +4 -4
- package/dist/commands/context.js +7 -7
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/decisions/index.js +4 -4
- package/dist/commands/decisions/index.js.map +1 -1
- package/dist/commands/default-action.d.ts.map +1 -1
- package/dist/commands/default-action.js +8 -5
- package/dist/commands/default-action.js.map +1 -1
- package/dist/commands/glossary.d.ts +1 -1
- package/dist/commands/import/confluence.js +1 -1
- package/dist/commands/import/confluence.js.map +1 -1
- package/dist/commands/import/git.js +4 -4
- package/dist/commands/import/git.js.map +1 -1
- package/dist/commands/import/jira.js +1 -1
- package/dist/commands/import/jira.js.map +1 -1
- package/dist/commands/import/sessions.d.ts +6 -6
- package/dist/commands/import/sessions.js +10 -10
- package/dist/commands/import/sessions.js.map +1 -1
- package/dist/commands/import.d.ts +2 -2
- package/dist/commands/import.js +2 -2
- package/dist/commands/invite.d.ts +1 -1
- package/dist/commands/invite.js +1 -1
- package/dist/commands/invite.js.map +1 -1
- package/dist/commands/local.js +3 -3
- package/dist/commands/local.js.map +1 -1
- package/dist/commands/mcp.d.ts +4 -4
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +34 -35
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/ratify.d.ts +1 -1
- package/dist/commands/ratify.js +1 -1
- package/dist/commands/ratify.js.map +1 -1
- package/dist/commands/registry.d.ts +2 -2
- package/dist/commands/registry.js +3 -3
- package/dist/commands/registry.js.map +1 -1
- package/dist/commands/search.js +2 -2
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/setup.d.ts +14 -10
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +133 -75
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/status.js +2 -2
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/telemetry.d.ts +2 -2
- package/dist/commands/telemetry.js +3 -3
- package/dist/commands/telemetry.js.map +1 -1
- package/dist/commands/why.js +31 -31
- package/dist/commands/why.js.map +1 -1
- package/dist/detector/local-model-default.d.ts +1 -1
- package/dist/detector/local-model-default.js +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/access-capability.d.ts +1 -1
- package/dist/lib/access-capability.js +1 -1
- package/dist/lib/advisory-verdict.d.ts +3 -3
- package/dist/lib/advisory-verdict.js +3 -3
- package/dist/lib/agent-rules.d.ts +9 -0
- package/dist/lib/agent-rules.d.ts.map +1 -1
- package/dist/lib/agent-rules.js +55 -39
- package/dist/lib/agent-rules.js.map +1 -1
- package/dist/lib/approve-suggestions.d.ts +1 -1
- package/dist/lib/approve-suggestions.js +1 -1
- package/dist/lib/as-of.d.ts +6 -6
- package/dist/lib/as-of.js +6 -6
- package/dist/lib/ask-evidence.js +1 -1
- package/dist/lib/ask-key-offer.js +1 -1
- package/dist/lib/ask-listing.js +1 -1
- package/dist/lib/brand.d.ts +2 -2
- package/dist/lib/brand.js +3 -3
- package/dist/lib/capture-report.d.ts +1 -1
- package/dist/lib/capture-report.d.ts.map +1 -1
- package/dist/lib/capture-report.js +3 -3
- package/dist/lib/capture-report.js.map +1 -1
- package/dist/lib/capture-sources.d.ts +1 -1
- package/dist/lib/capture-sources.js +1 -1
- package/dist/lib/check-depth.d.ts +1 -1
- package/dist/lib/check-depth.js +1 -1
- package/dist/lib/claude-presence.d.ts +1 -1
- package/dist/lib/claude-presence.js +1 -1
- package/dist/lib/cli-oauth.js +1 -1
- package/dist/lib/cli-oauth.js.map +1 -1
- package/dist/lib/commands-doc.d.ts +1 -1
- package/dist/lib/commands-doc.js +1 -1
- package/dist/lib/commit-cite.js +2 -2
- package/dist/lib/commit-shape.d.ts +1 -1
- package/dist/lib/commit-shape.js +1 -1
- package/dist/lib/config.d.ts +6 -6
- package/dist/lib/config.js +7 -7
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/connect-prompt.d.ts +1 -1
- package/dist/lib/connect-prompt.js +1 -1
- package/dist/lib/decider-kind.d.ts +4 -4
- package/dist/lib/decider-kind.js +4 -4
- package/dist/lib/decision-links.d.ts +7 -8
- package/dist/lib/decision-links.d.ts.map +1 -1
- package/dist/lib/decision-links.js +8 -9
- package/dist/lib/decision-links.js.map +1 -1
- package/dist/lib/decision-refs.d.ts +3 -3
- package/dist/lib/decision-refs.js +4 -4
- package/dist/lib/decision-refs.js.map +1 -1
- package/dist/lib/decision-relations.d.ts +4 -4
- package/dist/lib/decision-relations.js +4 -4
- package/dist/lib/decision-render.d.ts +2 -2
- package/dist/lib/decision-render.d.ts.map +1 -1
- package/dist/lib/decision-render.js +5 -5
- package/dist/lib/decision-render.js.map +1 -1
- package/dist/lib/decisions-context.d.ts +4 -4
- package/dist/lib/decisions-context.js +5 -5
- package/dist/lib/decisions-context.js.map +1 -1
- package/dist/lib/doctor-mcp.js +1 -1
- package/dist/lib/doctor.d.ts +2 -2
- package/dist/lib/embedding-assets.js +1 -1
- package/dist/lib/embedding-runtime.js +1 -1
- package/dist/lib/fetchers/capture.d.ts +1 -1
- package/dist/lib/fetchers/docs.d.ts +1 -1
- package/dist/lib/fetchers/docs.js +5 -5
- package/dist/lib/fetchers/docs.js.map +1 -1
- package/dist/lib/fetchers/git.d.ts +1 -1
- package/dist/lib/fetchers/git.js +1 -1
- package/dist/lib/fetchers/github.d.ts +2 -2
- package/dist/lib/fetchers/github.js +2 -2
- package/dist/lib/fetchers/linear.js +1 -1
- package/dist/lib/fetchers/slack.d.ts +2 -2
- package/dist/lib/fetchers/slack.js +2 -2
- package/dist/lib/first-decision.d.ts +1 -1
- package/dist/lib/first-decision.js +1 -1
- package/dist/lib/first-run-pr-import.d.ts +1 -1
- package/dist/lib/format-date.d.ts +1 -1
- package/dist/lib/format-date.js +1 -1
- package/dist/lib/found-summary.js +4 -4
- package/dist/lib/found-summary.js.map +1 -1
- package/dist/lib/gateway-client.d.ts +27 -27
- package/dist/lib/gateway-client.d.ts.map +1 -1
- package/dist/lib/gateway-client.js +30 -30
- package/dist/lib/gateway-client.js.map +1 -1
- package/dist/lib/git.d.ts +10 -10
- package/dist/lib/git.d.ts.map +1 -1
- package/dist/lib/git.js +12 -12
- package/dist/lib/git.js.map +1 -1
- package/dist/lib/hook-context.js +1 -1
- package/dist/lib/hook-payload.d.ts +1 -1
- package/dist/lib/hybrid-rank.d.ts +3 -3
- package/dist/lib/hybrid-rank.d.ts.map +1 -1
- package/dist/lib/hybrid-rank.js +3 -3
- package/dist/lib/hybrid-rank.js.map +1 -1
- package/dist/lib/import-defaults.d.ts +5 -5
- package/dist/lib/import-defaults.js +3 -3
- package/dist/lib/inline-rules.d.ts +1 -1
- package/dist/lib/inline-rules.js +1 -1
- package/dist/lib/invite-prompt.d.ts +1 -1
- package/dist/lib/invite-prompt.js +1 -1
- package/dist/lib/launch/mcp-child-env.js +1 -1
- package/dist/lib/launch/mcp-child-env.js.map +1 -1
- package/dist/lib/launch/strict-entry.js +2 -2
- package/dist/lib/launch/strict-entry.js.map +1 -1
- package/dist/lib/lexical-store.d.ts +1 -1
- package/dist/lib/lexical-store.js +1 -1
- package/dist/lib/lexical-terms.d.ts +1 -1
- package/dist/lib/lexical-terms.js +1 -1
- package/dist/lib/lexical-text.d.ts +2 -2
- package/dist/lib/lexical-text.js +2 -2
- package/dist/lib/llm-providers.d.ts +1 -1
- package/dist/lib/llm-providers.js +2 -2
- package/dist/lib/llm-providers.js.map +1 -1
- package/dist/lib/llm-trace.d.ts +1 -1
- package/dist/lib/llm-trace.js +1 -1
- package/dist/lib/llm-trace.js.map +1 -1
- package/dist/lib/local-candidate-classify.d.ts +1 -1
- package/dist/lib/local-candidate-classify.js +3 -3
- package/dist/lib/local-candidate-classify.js.map +1 -1
- package/dist/lib/local-db-migrate.d.ts +6 -6
- package/dist/lib/local-db-migrate.js +9 -9
- package/dist/lib/local-db-migrate.js.map +1 -1
- package/dist/lib/local-db-v11.d.ts +1 -1
- package/dist/lib/local-db.d.ts +33 -33
- package/dist/lib/local-db.d.ts.map +1 -1
- package/dist/lib/local-db.js +27 -27
- package/dist/lib/local-db.js.map +1 -1
- package/dist/lib/local-embeddings-native.js +1 -1
- package/dist/lib/local-embeddings.d.ts +2 -2
- package/dist/lib/local-embeddings.js +2 -2
- package/dist/lib/local-embeddings.js.map +1 -1
- package/dist/lib/local-gateway-client.d.ts +5 -5
- package/dist/lib/local-gateway-client.js +40 -40
- package/dist/lib/local-gateway-client.js.map +1 -1
- package/dist/lib/local-ingest.d.ts +3 -3
- package/dist/lib/local-ingest.js +3 -3
- package/dist/lib/local-link-pass.js +1 -1
- package/dist/lib/local-link-pass.js.map +1 -1
- package/dist/lib/local-llm.d.ts +21 -22
- package/dist/lib/local-llm.d.ts.map +1 -1
- package/dist/lib/local-llm.js +28 -30
- package/dist/lib/local-llm.js.map +1 -1
- package/dist/lib/local-mode.d.ts +1 -1
- package/dist/lib/local-mode.js +2 -2
- package/dist/lib/local-mode.js.map +1 -1
- package/dist/lib/local-provenance.d.ts +1 -1
- package/dist/lib/local-provenance.js +1 -1
- package/dist/lib/local-relationship-classifier.d.ts +6 -6
- package/dist/lib/local-relationship-classifier.js +7 -7
- package/dist/lib/local-relationship-classifier.js.map +1 -1
- package/dist/lib/local-thresholds.d.ts +3 -3
- package/dist/lib/local-thresholds.js +4 -4
- package/dist/lib/local-thresholds.js.map +1 -1
- package/dist/lib/mcp/share-status-tool.js +1 -1
- package/dist/lib/mcp/share-tool.js +1 -1
- package/dist/lib/mcp-setup.d.ts +11 -4
- package/dist/lib/mcp-setup.d.ts.map +1 -1
- package/dist/lib/mcp-setup.js +22 -12
- package/dist/lib/mcp-setup.js.map +1 -1
- package/dist/lib/mcp-timeline-tools.d.ts +5 -5
- package/dist/lib/mcp-timeline-tools.d.ts.map +1 -1
- package/dist/lib/mcp-timeline-tools.js +22 -23
- package/dist/lib/mcp-timeline-tools.js.map +1 -1
- package/dist/lib/next-step.d.ts +11 -5
- package/dist/lib/next-step.d.ts.map +1 -1
- package/dist/lib/next-step.js +12 -4
- package/dist/lib/next-step.js.map +1 -1
- package/dist/lib/personal-import.d.ts +3 -3
- package/dist/lib/personal-import.d.ts.map +1 -1
- package/dist/lib/personal-import.js +4 -4
- package/dist/lib/personal-import.js.map +1 -1
- package/dist/lib/personal-oauth.js +3 -3
- package/dist/lib/personal-oauth.js.map +1 -1
- package/dist/lib/query-expand.d.ts +1 -1
- package/dist/lib/query-expand.js +1 -1
- package/dist/lib/read-value-rollup.d.ts +2 -2
- package/dist/lib/read-value-rollup.js +3 -3
- package/dist/lib/read-value-rollup.js.map +1 -1
- package/dist/lib/reason-extract.d.ts +1 -1
- package/dist/lib/reason-extract.js +1 -1
- package/dist/lib/repo-identity.d.ts +2 -2
- package/dist/lib/repo-identity.js +3 -3
- package/dist/lib/resolve-env.d.ts +1 -1
- package/dist/lib/resolve-env.js +1 -1
- package/dist/lib/scope-defaults.js +1 -1
- package/dist/lib/scope-real.d.ts.map +1 -1
- package/dist/lib/scope-real.js +1 -1
- package/dist/lib/scope-real.js.map +1 -1
- package/dist/lib/search-query.d.ts +2 -2
- package/dist/lib/search-query.js +2 -2
- package/dist/lib/search-rerank.d.ts +1 -1
- package/dist/lib/search-rerank.js +1 -1
- package/dist/lib/sessions/confirm-freetext.d.ts +3 -3
- package/dist/lib/sessions/confirm-freetext.d.ts.map +1 -1
- package/dist/lib/sessions/confirm-freetext.js +2 -2
- package/dist/lib/sessions/extract-freetext.d.ts +3 -3
- package/dist/lib/sessions/extract-freetext.d.ts.map +1 -1
- package/dist/lib/sessions/import-summary.d.ts +1 -1
- package/dist/lib/sessions/import-summary.js +1 -1
- package/dist/lib/sessions/memory-files.d.ts +1 -1
- package/dist/lib/sessions/memory-files.js +5 -5
- package/dist/lib/sessions/source-url.d.ts +2 -2
- package/dist/lib/sessions/source-url.js +2 -2
- package/dist/lib/sessions/types.d.ts +6 -6
- package/dist/lib/sessions/types.js +4 -4
- package/dist/lib/setup-funnel.d.ts +2 -2
- package/dist/lib/setup-ux.d.ts +2 -2
- package/dist/lib/setup-ux.js +3 -3
- package/dist/lib/setup-ux.js.map +1 -1
- package/dist/lib/share/approval.js +1 -1
- package/dist/lib/share/browser-flow.d.ts +1 -1
- package/dist/lib/share/browser-flow.js +1 -1
- package/dist/lib/share/command.js +1 -1
- package/dist/lib/share/envelope.js +1 -1
- package/dist/lib/share/pending.d.ts +1 -1
- package/dist/lib/share/requests-client.d.ts +1 -1
- package/dist/lib/share/run.d.ts +1 -1
- package/dist/lib/sparse-graph.d.ts +20 -0
- package/dist/lib/sparse-graph.d.ts.map +1 -0
- package/dist/lib/sparse-graph.js +39 -0
- package/dist/lib/sparse-graph.js.map +1 -0
- package/dist/lib/suppress-sqlite-warning.d.ts +1 -1
- package/dist/lib/sync/real-env.d.ts.map +1 -1
- package/dist/lib/telemetry-env.d.ts +3 -3
- package/dist/lib/telemetry-env.js +1 -1
- package/dist/lib/token-estimate.d.ts +1 -1
- package/dist/lib/token-estimate.js +3 -3
- package/dist/lib/token-estimate.js.map +1 -1
- package/dist/lib/token-scope-gate.d.ts +1 -1
- package/dist/lib/token-scope-gate.js +1 -1
- package/dist/lib/trusted-align-bin.d.ts +2 -2
- package/dist/lib/trusted-align-bin.d.ts.map +1 -1
- package/dist/lib/trusted-align-bin.js +2 -2
- package/dist/lib/trusted-align-bin.js.map +1 -1
- package/dist/lib/usage-telemetry.d.ts +17 -17
- package/dist/lib/usage-telemetry.js +24 -24
- package/dist/lib/usage-telemetry.js.map +1 -1
- package/dist/lib/user-hooks.d.ts +1 -1
- package/dist/lib/user-hooks.d.ts.map +1 -1
- package/dist/lib/user-hooks.js +3 -3
- package/dist/lib/user-hooks.js.map +1 -1
- package/dist/lib/value-rollup.d.ts +7 -7
- package/dist/lib/value-rollup.d.ts.map +1 -1
- package/dist/lib/value-rollup.js +12 -12
- package/dist/lib/value-rollup.js.map +1 -1
- package/dist/lib/write-confirm.d.ts +53 -0
- package/dist/lib/write-confirm.d.ts.map +1 -0
- package/dist/lib/write-confirm.js +70 -0
- package/dist/lib/write-confirm.js.map +1 -0
- package/package.json +1 -1
|
@@ -28,9 +28,9 @@ export declare function currentRepoIdentity(opts?: {
|
|
|
28
28
|
/**
|
|
29
29
|
* Turns `--repo`/`--all` CLI flags into the `{ repo, all }` scope object
|
|
30
30
|
* searchDecisions/listDecisions take - and, since the repo dimension is local-only
|
|
31
|
-
* (
|
|
31
|
+
* (it is scoped to the local graph, not the cloud gateway), warns and drops them
|
|
32
32
|
* when the resolved environment has no repo dimension at all. One place decides this so
|
|
33
|
-
* every command that adds the flags applies the same rule (
|
|
33
|
+
* every command that adds the flags applies the same rule (a flag that
|
|
34
34
|
* silently does nothing is a bug, not a graceful degradation).
|
|
35
35
|
*
|
|
36
36
|
* Returns undefined for "no scope opinion" - a caller passes that straight through to
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The repo dimension for the local graph. Without this, every checkout's
|
|
3
3
|
* decisions land in one global SQLite file with nothing recording which repo a row
|
|
4
4
|
* came from - so `align ask` inside align-cli silently answers from align-stack's
|
|
5
5
|
* commits too. This module is the one place identity is computed, so a decision's
|
|
@@ -89,9 +89,9 @@ export async function currentRepoIdentity(opts = {}) {
|
|
|
89
89
|
/**
|
|
90
90
|
* Turns `--repo`/`--all` CLI flags into the `{ repo, all }` scope object
|
|
91
91
|
* searchDecisions/listDecisions take - and, since the repo dimension is local-only
|
|
92
|
-
* (
|
|
92
|
+
* (it is scoped to the local graph, not the cloud gateway), warns and drops them
|
|
93
93
|
* when the resolved environment has no repo dimension at all. One place decides this so
|
|
94
|
-
* every command that adds the flags applies the same rule (
|
|
94
|
+
* every command that adds the flags applies the same rule (a flag that
|
|
95
95
|
* silently does nothing is a bug, not a graceful degradation).
|
|
96
96
|
*
|
|
97
97
|
* Returns undefined for "no scope opinion" - a caller passes that straight through to
|
|
@@ -16,7 +16,7 @@ export declare function resolveEnv(flagValue?: string, opts?: {
|
|
|
16
16
|
config?: ConfigStore;
|
|
17
17
|
}): EnvName;
|
|
18
18
|
/**
|
|
19
|
-
* Env resolution for `align connect <tool
|
|
19
|
+
* Env resolution for `align connect <tool>`.
|
|
20
20
|
*
|
|
21
21
|
* Imports were left off the preferLocalEmbedded redirect on the premise that
|
|
22
22
|
* they are cloud-only. They are not: the local-embedded client implements
|
package/dist/lib/resolve-env.js
CHANGED
|
@@ -46,7 +46,7 @@ export function resolveEnv(flagValue, opts = {}) {
|
|
|
46
46
|
return defaultEnv;
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
|
-
* Env resolution for `align connect <tool
|
|
49
|
+
* Env resolution for `align connect <tool>`.
|
|
50
50
|
*
|
|
51
51
|
* Imports were left off the preferLocalEmbedded redirect on the premise that
|
|
52
52
|
* they are cloud-only. They are not: the local-embedded client implements
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* L4: what to preselect when a person picks a Jira project or a Linear team: the ticket prefixes their own decisions already
|
|
3
|
-
* cite (`decision_refs
|
|
3
|
+
* cite (`decision_refs`). A suggestion only - the picker shows it, and a non-interactive run uses it as the plan says
|
|
4
4
|
* (Decision 7) - so it is cheap, local and never an error: no graph, no refs table or no refs all give an empty list.
|
|
5
5
|
*/
|
|
6
6
|
import fs from 'node:fs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope-real.d.ts","sourceRoot":"","sources":["../../src/lib/scope-real.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAA2B,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,KAAK,WAAW,EAAmD,MAAM,mBAAmB,CAAC;AAEtG,wHAAwH;AACxH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAEzE;AAED,wBAAgB,gBAAgB,CAAC,MAAM;;;;;;;
|
|
1
|
+
{"version":3,"file":"scope-real.d.ts","sourceRoot":"","sources":["../../src/lib/scope-real.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAA2B,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,KAAK,WAAW,EAAmD,MAAM,mBAAmB,CAAC;AAEtG,wHAAwH;AACxH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAEzE;AAED,wBAAgB,gBAAgB,CAAC,MAAM;;;;;;;sBAiD09P,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAjDr8P,GAAG,UAAU,CAUzE;AAED,oJAAoJ;AACpJ,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;sBAoCy8P,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CApCp7P,GAAG,WAAW,GAAG,IAAI,CAGlG;AAED,yKAAyK;AACzK,wBAAgB,gBAAgB,CAAC,MAAM;;;;;;;sBA8B09P,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA9Br8P,GAAG;IAAE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAAC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAAC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,CAgB7M;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,GAAE;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;CAAO,GAAG,SAAS,CAW9H"}
|
package/dist/lib/scope-real.js
CHANGED
|
@@ -49,7 +49,7 @@ export function realScopeDeps(dbPath, o = {}) {
|
|
|
49
49
|
dbPath,
|
|
50
50
|
now: () => new Date(),
|
|
51
51
|
isTty: () => Boolean(process.stdin.isTTY && process.stdout.isTTY),
|
|
52
|
-
//
|
|
52
|
+
// The own folder detection, so GitHub has one reader of "which repo am I in" (it is imported lazily: a connector-core fetcher).
|
|
53
53
|
cwdRepo: async () => (await import('./fetchers/github.js')).resolveGitHubRepoScope({}),
|
|
54
54
|
cwdGitlabProject: async () => gitlabPlaceOf(await currentRepoIdentity()),
|
|
55
55
|
fetch: (url, init) => fetch(url, init),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope-real.js","sourceRoot":"","sources":["../../src/lib/scope-real.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scope-real.js","sourceRoot":"","sources":["../../src/lib/scope-real.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Reduce a natural-language question to its content words, for use as a SECOND
|
|
3
3
|
* retrieval attempt when the raw query matched nothing.
|
|
4
4
|
*
|
|
5
|
-
* Deliberately NOT a replacement for the raw query.
|
|
6
|
-
* `normaliseWhyQuery()` because normalising BEFORE the cloud gateway defeated its
|
|
5
|
+
* Deliberately NOT a replacement for the raw query. The old
|
|
6
|
+
* `normaliseWhyQuery()` was removed because normalising BEFORE the cloud gateway defeated its
|
|
7
7
|
* strategy selector, which routes on the shape of the query. That decision stands:
|
|
8
8
|
* the raw query is still what gets embedded first, in both modes.
|
|
9
9
|
*
|
package/dist/lib/search-query.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Reduce a natural-language question to its content words, for use as a SECOND
|
|
3
3
|
* retrieval attempt when the raw query matched nothing.
|
|
4
4
|
*
|
|
5
|
-
* Deliberately NOT a replacement for the raw query.
|
|
6
|
-
* `normaliseWhyQuery()` because normalising BEFORE the cloud gateway defeated its
|
|
5
|
+
* Deliberately NOT a replacement for the raw query. The old
|
|
6
|
+
* `normaliseWhyQuery()` was removed because normalising BEFORE the cloud gateway defeated its
|
|
7
7
|
* strategy selector, which routes on the shape of the query. That decision stands:
|
|
8
8
|
* the raw query is still what gets embedded first, in both modes.
|
|
9
9
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A deterministic title rerank over dense candidates
|
|
2
|
+
* A deterministic title rerank over dense candidates.
|
|
3
3
|
*
|
|
4
4
|
* A dense embedding rewards a commit that repeats a noun: "why was align setup removed"
|
|
5
5
|
* ranked three commits that say "align setup" over and over (0.666, 0.639, 0.597) above the
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SCAFFOLDING } from './search-query.js';
|
|
2
2
|
/**
|
|
3
|
-
* A deterministic title rerank over dense candidates
|
|
3
|
+
* A deterministic title rerank over dense candidates.
|
|
4
4
|
*
|
|
5
5
|
* A dense embedding rewards a commit that repeats a noun: "why was align setup removed"
|
|
6
6
|
* ranked three commits that say "align setup" over and over (0.666, 0.639, 0.597) above the
|
|
@@ -2,7 +2,7 @@ import { type LlmFailure } from '../local-llm.js';
|
|
|
2
2
|
import type { AgentName } from './types.js';
|
|
3
3
|
import type { RawFreeTextCandidate } from './extract-freetext.js';
|
|
4
4
|
/** A raw heuristic hit the model reviewed and stood behind - the only shape that may reach
|
|
5
|
-
* the confirm-each UX (
|
|
5
|
+
* the confirm-each UX (an Align decision: "only adjudicated results assert"). */
|
|
6
6
|
export interface ConfirmedFreeTextDecision {
|
|
7
7
|
agent: AgentName;
|
|
8
8
|
sessionId: string;
|
|
@@ -32,9 +32,9 @@ export type ConfirmOutcome =
|
|
|
32
32
|
};
|
|
33
33
|
/**
|
|
34
34
|
* A per-reason hint, not one collapsed "no LLM configured" line - align-stack's own
|
|
35
|
-
* local-gateway-client.ts already documents why collapsing this union is wrong (
|
|
35
|
+
* local-gateway-client.ts already documents why collapsing this union is wrong ("an
|
|
36
36
|
* unvetted local model gets its own remedy... nonsense to someone already running one") and
|
|
37
|
-
*
|
|
37
|
+
* why provider_stopped names the model that actually failed. Only `no_llm_key` means
|
|
38
38
|
* nothing is configured; the other three all require a provider that DID answer or a model
|
|
39
39
|
* that IS installed, so telling that caller to "set a key or run Ollama" is actively wrong.
|
|
40
40
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirm-freetext.d.ts","sourceRoot":"","sources":["../../../src/lib/sessions/confirm-freetext.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,UAAU,EAIhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE;
|
|
1
|
+
{"version":3,"file":"confirm-freetext.d.ts","sourceRoot":"","sources":["../../../src/lib/sessions/confirm-freetext.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,UAAU,EAIhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE;kFACkF;AAClF,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB;kFAC8E;IAC9E,SAAS,EAAE,MAAM,CAAC;IAClB;sEACkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;gGACgG;AAChG,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,eAAe,GAAG,qBAAqB,GAAG,sBAAsB,CAAC;AAEnH,MAAM,MAAM,cAAc;AACxB;+DAC+D;AAC7D;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI,CAAA;CAAE,GACxD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAC;IAAC,OAAO,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAoCtE;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,CAajG;AAED,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CA4BvG"}
|
|
@@ -29,9 +29,9 @@ function parseConfirmation(text) {
|
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* A per-reason hint, not one collapsed "no LLM configured" line - align-stack's own
|
|
32
|
-
* local-gateway-client.ts already documents why collapsing this union is wrong (
|
|
32
|
+
* local-gateway-client.ts already documents why collapsing this union is wrong ("an
|
|
33
33
|
* unvetted local model gets its own remedy... nonsense to someone already running one") and
|
|
34
|
-
*
|
|
34
|
+
* why provider_stopped names the model that actually failed. Only `no_llm_key` means
|
|
35
35
|
* nothing is configured; the other three all require a provider that DID answer or a model
|
|
36
36
|
* that IS installed, so telling that caller to "set a key or run Ollama" is actively wrong.
|
|
37
37
|
*/
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { AgentName, CanonicalSession } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Pass B, heuristic half: a HUMAN turn whose own words redirect or settle on an
|
|
4
4
|
* approach mid-session. Everything downstream (confirm-freetext.ts) treats this as a proposal
|
|
5
5
|
* only - "heuristic proposes, LLM adjudicates, only adjudicated results assert" is the same
|
|
6
|
-
* shape as decision_links' writer split (
|
|
6
|
+
* shape as decision_links' writer split (an Align decision), applied here to candidates
|
|
7
7
|
* instead of edges.
|
|
8
8
|
*/
|
|
9
9
|
export interface RawFreeTextCandidate {
|
|
@@ -18,7 +18,7 @@ export interface RawFreeTextCandidate {
|
|
|
18
18
|
/** The assistant turn immediately after, when there is one - CONTEXT for the LLM confirmation
|
|
19
19
|
* pass to read, never itself scanned for the trigger phrase and never the source of the
|
|
20
20
|
* claim (the same "don't let bot content pass as the human's own statement" principle as
|
|
21
|
-
*
|
|
21
|
+
* an Align decision, applied to a different pipeline). */
|
|
22
22
|
contextText: string | null;
|
|
23
23
|
timestamp: string | null;
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-freetext.d.ts","sourceRoot":"","sources":["../../../src/lib/sessions/extract-freetext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB;;qDAEiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,SAAS,EAAE,MAAM,CAAC;IAClB
|
|
1
|
+
{"version":3,"file":"extract-freetext.d.ts","sourceRoot":"","sources":["../../../src/lib/sessions/extract-freetext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB;;qDAEiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,SAAS,EAAE,MAAM,CAAC;IAClB;;;+DAG2D;IAC3D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAsCD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,oBAAoB,EAAE,CAgBxF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The line a human reads at the end of `align connect sessions`, and the counts the
|
|
3
3
|
* funnel reports.
|
|
4
4
|
*
|
|
5
5
|
* The line is the product moment; the ping is the measurement. They are built from ONE object
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The line a human reads at the end of `align connect sessions`, and the counts the
|
|
3
3
|
* funnel reports.
|
|
4
4
|
*
|
|
5
5
|
* The line is the product moment; the ping is the measurement. They are built from ONE object
|
|
@@ -49,7 +49,7 @@ export interface MemoryDecisionCandidate {
|
|
|
49
49
|
* empty list, which is indistinguishable from "no memories yet".
|
|
50
50
|
* 2. Otherwise, the `memory/` sibling of this project's Claude Code session files. The docs
|
|
51
51
|
* say `<project>` is derived from the git repository, and the exact slug encoding is not
|
|
52
|
-
* documented - so rather than guess at it, this reuses the cwd matching
|
|
52
|
+
* documented - so rather than guess at it, this reuses the cwd matching session import already
|
|
53
53
|
* proved (each session file records its own `cwd`) and takes the directory those files
|
|
54
54
|
* sit in. That is correct for worktrees and subdirectories for free, because they share
|
|
55
55
|
* one project directory.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Claude Code's own auto-memory as a second, already-curated decision source.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Session import mines raw transcripts. This reads the notes the harness already decided were worth
|
|
5
5
|
* keeping: `~/.claude/projects/<project>/memory/*.md`, one fact per file, with a `type` in
|
|
6
6
|
* frontmatter. Higher precision per file and far cheaper to parse - no noise filtering, no
|
|
7
7
|
* repeat-loop exclusion, no plan-file resolution.
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* There is no captured memory-file fixture, because this environment has no memory directory
|
|
12
12
|
* at all (checked: `find ~/.claude -type d -name memory` is empty while `~/.claude/projects`
|
|
13
|
-
* exists). Under
|
|
13
|
+
* exists). Under the own gate - "the gate is the fixture, not the agent name" - that
|
|
14
14
|
* would normally mean shipping `locate` and refusing to parse, the way `gemini-cli` and
|
|
15
15
|
* `cursor` do.
|
|
16
16
|
*
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
* legitimately carry no frontmatter at all;
|
|
30
30
|
* - `autoMemoryDirectory` in settings.json relocates the directory.
|
|
31
31
|
*
|
|
32
|
-
* **The
|
|
32
|
+
* **The ticket also names `description` and `originSessionId` frontmatter fields.
|
|
33
33
|
* The documentation describes neither.** They may well exist - the ticket was written from a
|
|
34
34
|
* real machine and this one has no memory directory to check - but nothing here depends on
|
|
35
35
|
* them, because a field this module cannot confirm is a field it must not require. If they
|
|
@@ -65,7 +65,7 @@ export const MEMORY_INDEX_FILENAME = 'MEMORY.md';
|
|
|
65
65
|
* empty list, which is indistinguishable from "no memories yet".
|
|
66
66
|
* 2. Otherwise, the `memory/` sibling of this project's Claude Code session files. The docs
|
|
67
67
|
* say `<project>` is derived from the git repository, and the exact slug encoding is not
|
|
68
|
-
* documented - so rather than guess at it, this reuses the cwd matching
|
|
68
|
+
* documented - so rather than guess at it, this reuses the cwd matching session import already
|
|
69
69
|
* proved (each session file records its own `cwd`) and takes the directory those files
|
|
70
70
|
* sit in. That is correct for worktrees and subdirectories for free, because they share
|
|
71
71
|
* one project directory.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AgentName } from './types.js';
|
|
2
|
-
/**
|
|
2
|
+
/** Shared contract: the agent name lives in the scheme, `platform` stays the single
|
|
3
3
|
* value `agent-session` everywhere else. */
|
|
4
4
|
export declare function buildSessionSourceUrl(agent: AgentName, sessionId: string, messageId: string): string;
|
|
5
5
|
export declare function parseSessionSourceUrl(url: string): {
|
|
@@ -8,7 +8,7 @@ export declare function parseSessionSourceUrl(url: string): {
|
|
|
8
8
|
messageId: string;
|
|
9
9
|
} | null;
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* Memory files are not sessions, so they get their own scheme rather than being
|
|
12
12
|
* squeezed into `<agent>-session://<sessionId>/<messageId>` with invented ids.
|
|
13
13
|
*
|
|
14
14
|
* Built from the project directory name and the topic file's stem, both of which are stable
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const AGENTS = ['claude-code', 'codex', 'cursor', 'gemini-cli', 'opencode', 'pi'];
|
|
2
|
-
/**
|
|
2
|
+
/** Shared contract: the agent name lives in the scheme, `platform` stays the single
|
|
3
3
|
* value `agent-session` everywhere else. */
|
|
4
4
|
export function buildSessionSourceUrl(agent, sessionId, messageId) {
|
|
5
5
|
return `${agent}-session://${sessionId}/${messageId}`;
|
|
@@ -18,7 +18,7 @@ export function parseSessionSourceUrl(url) {
|
|
|
18
18
|
return null;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
21
|
+
* Memory files are not sessions, so they get their own scheme rather than being
|
|
22
22
|
* squeezed into `<agent>-session://<sessionId>/<messageId>` with invented ids.
|
|
23
23
|
*
|
|
24
24
|
* Built from the project directory name and the topic file's stem, both of which are stable
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* and eventually
|
|
4
|
-
* `normalizeHookPayload` pattern used for the destructive-command guard (
|
|
5
|
-
* the pre-edit conflict check (align-cli#86), both cited in the
|
|
2
|
+
* The canonical shape every per-agent adapter parses into, so extraction (Pass A,
|
|
3
|
+
* and eventually the Pass B) never learns which agent it is reading - the same
|
|
4
|
+
* `normalizeHookPayload` pattern used for the destructive-command guard (align-stack#1953) and
|
|
5
|
+
* the pre-edit conflict check (align-cli#86), both cited in the addendum.
|
|
6
6
|
*/
|
|
7
|
-
/** The six agents named in the
|
|
7
|
+
/** The six agents named in the shared contract. Not every adapter parses content yet
|
|
8
8
|
* (see `fixtureVerified` on SessionAdapter) - the name is reserved even where the reader
|
|
9
9
|
* is not, because it is also the scheme host in a session's source_url. */
|
|
10
10
|
export type AgentName = 'claude-code' | 'codex' | 'cursor' | 'gemini-cli' | 'opencode' | 'pi';
|
|
@@ -36,7 +36,7 @@ export interface CanonicalSession {
|
|
|
36
36
|
}
|
|
37
37
|
export interface SessionAdapter {
|
|
38
38
|
agent: AgentName;
|
|
39
|
-
/** True only when a real captured session backs this adapter's fixture (the
|
|
39
|
+
/** True only when a real captured session backs this adapter's fixture (the
|
|
40
40
|
* shared-contract gate: "the gate is the fixture, not the agent name"). False means
|
|
41
41
|
* `parseSession` is intentionally unimplemented - see fixtures/sessions/README.md for
|
|
42
42
|
* which agents and why. */
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* and eventually
|
|
4
|
-
* `normalizeHookPayload` pattern used for the destructive-command guard (
|
|
5
|
-
* the pre-edit conflict check (align-cli#86), both cited in the
|
|
2
|
+
* The canonical shape every per-agent adapter parses into, so extraction (Pass A,
|
|
3
|
+
* and eventually the Pass B) never learns which agent it is reading - the same
|
|
4
|
+
* `normalizeHookPayload` pattern used for the destructive-command guard (align-stack#1953) and
|
|
5
|
+
* the pre-edit conflict check (align-cli#86), both cited in the addendum.
|
|
6
6
|
*/
|
|
7
7
|
/** Thrown by an unverified adapter's parseSession, instead of guessing at a format nobody
|
|
8
8
|
* has confirmed against a real session (verification.md: a plausible construction is not
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { EnvironmentConfig } from './config.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* The setup wizard's two funnel stages, carried through `runSetup` so bare
|
|
4
4
|
* `align` and `align setup` share one emitter (both run runSetup's body).
|
|
5
5
|
*
|
|
6
6
|
* `started` BUFFERS rather than sends. When a mode branch begins nothing may be sendable
|
|
7
7
|
* on a fresh install: cloud has no token until login, and local mode asks for consent
|
|
8
|
-
* mid-wizard (
|
|
8
|
+
* mid-wizard (the found-decisions moment comes before any question, and that order
|
|
9
9
|
* is not negotiable here). So the wizard offers the current env at each checkpoint - the
|
|
10
10
|
* top of the local value phase, after consent, the top of cloud setup, after login - and
|
|
11
11
|
* this object sends at the first offer the emitter reports as sent. Sendability is
|
package/dist/lib/setup-ux.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export declare function detectCliToken(bin: string, args: string[]): Promise<str
|
|
|
21
21
|
* Connectors whose token can be read from an already-authenticated local CLI.
|
|
22
22
|
*
|
|
23
23
|
* `verify` is REQUIRED, not optional. A reused credential was minted for something
|
|
24
|
-
* else, so it is taken only on positive confirmation it cannot write
|
|
24
|
+
* else, so it is taken only on positive confirmation it cannot write - and
|
|
25
25
|
* making the field mandatory means a future source (glab, linear) cannot ship reuse
|
|
26
26
|
* without deciding how to prove read-only-ness for its provider. The ungated version
|
|
27
27
|
* of this table shipped in #183 and silently held gh's repo-scoped (write-capable)
|
|
@@ -34,7 +34,7 @@ export declare const CLI_TOKEN_SOURCES: Record<string, {
|
|
|
34
34
|
verify: (token: string) => Promise<ScopeVerdict>;
|
|
35
35
|
}>;
|
|
36
36
|
/**
|
|
37
|
-
* Clear the terminal before the connector picker
|
|
37
|
+
* Clear the terminal before the connector picker.
|
|
38
38
|
*
|
|
39
39
|
* Moving the found-decisions summary before the picker reintroduces the exact
|
|
40
40
|
* condition that used to corrupt clack's in-place redraw for an outside tester
|
package/dist/lib/setup-ux.js
CHANGED
|
@@ -11,7 +11,7 @@ import * as readline from 'node:readline';
|
|
|
11
11
|
// Lines the prompt needs beyond the option rows themselves: the message, clack's
|
|
12
12
|
// top and bottom rules, the key hint, and one spare. This was 8 while the picker was
|
|
13
13
|
// drawn under a screenful of git output; the screen has been cleared before the
|
|
14
|
-
// picker
|
|
14
|
+
// picker, so the extra slack only hid rows. Measured 2026-09-03: a
|
|
15
15
|
// 12-row panel showed 4 of 8 sources and read as truncated. Now it shows 7.
|
|
16
16
|
const RESERVED_ROWS = 5;
|
|
17
17
|
// Below this a paginated list is unusable, so we overflow slightly rather than
|
|
@@ -58,7 +58,7 @@ export async function detectCliToken(bin, args) {
|
|
|
58
58
|
* Connectors whose token can be read from an already-authenticated local CLI.
|
|
59
59
|
*
|
|
60
60
|
* `verify` is REQUIRED, not optional. A reused credential was minted for something
|
|
61
|
-
* else, so it is taken only on positive confirmation it cannot write
|
|
61
|
+
* else, so it is taken only on positive confirmation it cannot write - and
|
|
62
62
|
* making the field mandatory means a future source (glab, linear) cannot ship reuse
|
|
63
63
|
* without deciding how to prove read-only-ness for its provider. The ungated version
|
|
64
64
|
* of this table shipped in #183 and silently held gh's repo-scoped (write-capable)
|
|
@@ -73,7 +73,7 @@ export const CLI_TOKEN_SOURCES = {
|
|
|
73
73
|
},
|
|
74
74
|
};
|
|
75
75
|
/**
|
|
76
|
-
* Clear the terminal before the connector picker
|
|
76
|
+
* Clear the terminal before the connector picker.
|
|
77
77
|
*
|
|
78
78
|
* Moving the found-decisions summary before the picker reintroduces the exact
|
|
79
79
|
* condition that used to corrupt clack's in-place redraw for an outside tester
|
package/dist/lib/setup-ux.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-ux.js","sourceRoot":"","sources":["../../src/lib/setup-ux.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAqB,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAE1C;;;;;;GAMG;AAEH,iFAAiF;AACjF,qFAAqF;AACrF,gFAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"setup-ux.js","sourceRoot":"","sources":["../../src/lib/setup-ux.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The client side of an approval, as functions over an injected client, a clock and a sleep.
|
|
3
3
|
*
|
|
4
4
|
* stage - make the request id, seal, send the ciphertext, check the answer is about THIS request.
|
|
5
5
|
* poll - ask the gateway what the person did, backing off, stopping at the expiry, stopping on Ctrl-C.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* `align share` when the person approves in a browser instead of typing y.
|
|
3
3
|
*
|
|
4
4
|
* For each request (at most SHARE_BATCH_ITEMS decisions, and small enough to seal): stage it, print the link and the
|
|
5
5
|
* code, wait, and when the gateway says the person approved, send the approved bytes. The link carries the key in
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* `align share` when the person approves in a browser instead of typing y.
|
|
3
3
|
*
|
|
4
4
|
* For each request (at most SHARE_BATCH_ITEMS decisions, and small enough to seal): stage it, print the link and the
|
|
5
5
|
* code, wait, and when the gateway says the person approved, send the approved bytes. The link carries the key in
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* L9: `align share` as a function of injected dependencies, returning an exit code. The commander
|
|
3
3
|
* wrapper (commands/share.ts) wires the real config, gateway client and prompts; tests wire fakes.
|
|
4
4
|
*
|
|
5
|
-
* Who may complete a share depends on what the gateway says (GET /share-requests/config
|
|
5
|
+
* Who may complete a share depends on what the gateway says (GET /share-requests/config):
|
|
6
6
|
*
|
|
7
7
|
* - `required`, or `available` without `--typed`: the person approves in a BROWSER session. This process stages
|
|
8
8
|
* an encrypted request, prints a link and a code, waits, and sends only what the gateway says was approved.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Seal what a share would send, so the team server holds only ciphertext until a person approves.
|
|
3
3
|
*
|
|
4
4
|
* The CLI seals the exact plaintext bytes with AES-256-GCM under a random 32-byte key the server never sees:
|
|
5
5
|
* the key travels only in the approve link's `#k=` fragment, which a browser does not send. The AAD is
|
|
@@ -48,7 +48,7 @@ export declare const REQUEST_GRACE_MS: number;
|
|
|
48
48
|
/** Remove code files (and abandoned `.used` files) older than a day. Returns how many. Touches only its own directories. */
|
|
49
49
|
export declare function sweepPending(now?: Date): number;
|
|
50
50
|
/**
|
|
51
|
-
*
|
|
51
|
+
* A share staged for BROWSER approval, kept so a later call (the MCP `align_share_status`) can finish it
|
|
52
52
|
* and so asking again returns the same live link instead of burning one of the gateway's five live requests.
|
|
53
53
|
*
|
|
54
54
|
* It holds what is secret: the key (it makes the link) and the exact plaintext bytes (decision text). So the file is
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The gateway's share-request routes, parsed without trusting them.
|
|
3
3
|
*
|
|
4
4
|
* Built from `request` (the gateway client's own fetch wrapper: bearer, identity headers, error text) so there
|
|
5
5
|
* is one HTTP path. Every call refuses a redirect: a 30x to another host would carry the bearer token and the
|
package/dist/lib/share/run.d.ts
CHANGED
|
@@ -107,7 +107,7 @@ export interface SendHooks {
|
|
|
107
107
|
team: TeamDecision;
|
|
108
108
|
}) => Promise<boolean>;
|
|
109
109
|
/**
|
|
110
|
-
* Browser approval
|
|
110
|
+
* Browser approval: the batch goes out through the gateway's completion of a request the person
|
|
111
111
|
* approved, NOT through shareBatch. Called once per batch with phase 'share' (the caller already holds the
|
|
112
112
|
* answer) and once more with phase 'confirm' for a re-post that waits on the team's text. Null means that
|
|
113
113
|
* step was not approved (declined, expired, cancelled): nothing was posted for it.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A graph with fewer decisions than this is "sparse" and setup says what to do next.
|
|
3
|
+
*
|
|
4
|
+
* It reuses LOCAL_SHARE_THRESHOLD (5) instead of inventing a number: that is the size at
|
|
5
|
+
* which the CLI already treats a local graph as worth using and sharing, and the size
|
|
6
|
+
* `align ask` already nudges at. Below it, the graph is too thin to answer much.
|
|
7
|
+
*/
|
|
8
|
+
export declare const SPARSE_GRAPH_THRESHOLD = 5;
|
|
9
|
+
export declare function isSparseGraph(total: number): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* The lines setup prints when the graph came out empty or thin. Pure strings, no chalk and
|
|
12
|
+
* no I/O. Only commands that exist are named: `align connect github` (PR descriptions,
|
|
13
|
+
* where the reason usually lives), `align connect docs` (ADRs and CLAUDE.md/AGENTS.md),
|
|
14
|
+
* and `align connect` for the picker (Notion, Linear, Jira and the rest). There is no
|
|
15
|
+
* sample-decision or starter-rules command in this CLI, so none is offered.
|
|
16
|
+
*/
|
|
17
|
+
export declare function sparseGraphHint(total: number, opts?: {
|
|
18
|
+
bareReadsLocal?: boolean;
|
|
19
|
+
}): string[] | undefined;
|
|
20
|
+
//# sourceMappingURL=sparse-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sparse-graph.d.ts","sourceRoot":"","sources":["../../src/lib/sparse-graph.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,IAAwB,CAAC;AAE5D,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAkB5G"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { LOCAL_SHARE_THRESHOLD } from './value-rollup.js';
|
|
2
|
+
/**
|
|
3
|
+
* A graph with fewer decisions than this is "sparse" and setup says what to do next.
|
|
4
|
+
*
|
|
5
|
+
* It reuses LOCAL_SHARE_THRESHOLD (5) instead of inventing a number: that is the size at
|
|
6
|
+
* which the CLI already treats a local graph as worth using and sharing, and the size
|
|
7
|
+
* `align ask` already nudges at. Below it, the graph is too thin to answer much.
|
|
8
|
+
*/
|
|
9
|
+
export const SPARSE_GRAPH_THRESHOLD = LOCAL_SHARE_THRESHOLD;
|
|
10
|
+
export function isSparseGraph(total) {
|
|
11
|
+
return total < SPARSE_GRAPH_THRESHOLD;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* The lines setup prints when the graph came out empty or thin. Pure strings, no chalk and
|
|
15
|
+
* no I/O. Only commands that exist are named: `align connect github` (PR descriptions,
|
|
16
|
+
* where the reason usually lives), `align connect docs` (ADRs and CLAUDE.md/AGENTS.md),
|
|
17
|
+
* and `align connect` for the picker (Notion, Linear, Jira and the rest). There is no
|
|
18
|
+
* sample-decision or starter-rules command in this CLI, so none is offered.
|
|
19
|
+
*/
|
|
20
|
+
export function sparseGraphHint(total, opts = {}) {
|
|
21
|
+
if (!isSparseGraph(total))
|
|
22
|
+
return undefined;
|
|
23
|
+
// A bare `align connect` targets whichever graph bare commands read. When that is a cloud graph
|
|
24
|
+
// (logged in, or ALIGN_ENV exported) the printed commands would fill the wrong one, so name the local one.
|
|
25
|
+
const env = opts.bareReadsLocal === false ? ' --env local' : '';
|
|
26
|
+
const lead = total === 0
|
|
27
|
+
? 'Your graph is empty. Nothing in the history or docs here stated a reason.'
|
|
28
|
+
: `Your graph has ${total} ${total === 1 ? 'decision' : 'decisions'}. That is thin.`;
|
|
29
|
+
return [
|
|
30
|
+
lead,
|
|
31
|
+
'The reason for a change usually lives somewhere else. Add it:',
|
|
32
|
+
...[
|
|
33
|
+
['align connect github', 'PR descriptions'],
|
|
34
|
+
['align connect docs', 'ADRs, CLAUDE.md, AGENTS.md'],
|
|
35
|
+
['align connect', 'pick another source (Notion, Linear, Jira ...)'],
|
|
36
|
+
].map(([cmd, what]) => ` ${`${cmd}${env}`.padEnd(`align connect github${env}`.length + 3)}${what}`),
|
|
37
|
+
];
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=sparse-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sparse-graph.js","sourceRoot":"","sources":["../../src/lib/sparse-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAE5D,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,KAAK,GAAG,sBAAsB,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,OAAqC,EAAE;IACpF,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,gGAAgG;IAChG,2GAA2G;IAC3G,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,MAAM,IAAI,GACR,KAAK,KAAK,CAAC;QACT,CAAC,CAAC,2EAA2E;QAC7E,CAAC,CAAC,kBAAkB,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,iBAAiB,CAAC;IACzF,OAAO;QACL,IAAI;QACJ,+DAA+D;QAC/D,GAAG;YACD,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;YAC3C,CAAC,oBAAoB,EAAE,4BAA4B,CAAC;YACpD,CAAC,eAAe,EAAE,gDAAgD,CAAC;SACpE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;KACrG,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Node 22.16 prints `ExperimentalWarning: SQLite is an experimental feature` on every
|
|
3
3
|
* command, because the local graph loads `node:sqlite` (stable-ish from Node 24, still flagged
|
|
4
4
|
* experimental on the 22.x floor). It is stderr noise the user cannot act on. Only that one
|
|
5
5
|
* warning is dropped: any other warning, and any other ExperimentalWarning, is forwarded as is.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"real-env.d.ts","sourceRoot":"","sources":["../../../src/lib/sync/real-env.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,6GAA6G;AAC7G,wBAAgB,cAAc,CAAC,MAAM;;;;;;;
|
|
1
|
+
{"version":3,"file":"real-env.d.ts","sourceRoot":"","sources":["../../../src/lib/sync/real-env.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,6GAA6G;AAC7G,wBAAgB,cAAc,CAAC,MAAM;;;;;;;sBAiC01S,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAjCr0S,GAAG,MAAM,GAAG,SAAS,CAG/E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;sBA4B60S,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA5BxzS,GAAG,OAAO,CAcjF;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;sBAY00S,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAZrzS,GAAG,UAAU,CAWvF"}
|