@inharness-ai/claude4spec 1.0.5 → 1.0.7
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/skills/c4s-brief-implementer/SKILL.md +37 -3
- package/.claude/skills/c4s-spec-reader/SKILL.md +11 -0
- package/CHANGELOG.md +32 -0
- package/dist/bin/c4s/commands/ask.d.ts +6 -4
- package/dist/bin/c4s/commands/ask.js +41 -135
- package/dist/bin/c4s/commands/ask.js.map +1 -1
- package/dist/client/assets/{arc-grMo2vzL.js → arc-BaZhf2Hh.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-Fp_VHONq.js → architectureDiagram-3BPJPVTR-CSSQUdKD.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-CIwVG0sx.js → blockDiagram-GPEHLZMM-BlmKwjoI.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-tysuJyz0.js → c4Diagram-AAUBKEIU-C7helt0Z.js} +1 -1
- package/dist/client/assets/channel-CHGfOh3d.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-DZFNNwID.js → chunk-2J33WTMH-CC-e13sC.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-CsnJG7Pv.js → chunk-4BX2VUAB-D-HpWY8q.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-MhREYXzo.js → chunk-55IACEB6-BSPwaiEp.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-BjvyGtK3.js → chunk-727SXJPM-CQbEHPPO.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-zfcfKNbO.js → chunk-AQP2D5EJ-BpSrKpmB.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-Ckx-Hc8U.js → chunk-FMBD7UC4-zE1R3SR8.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-DSIVVmYM.js → chunk-ND2GUHAM-CqN17qqH.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-EcIM6ZdS.js → chunk-QZHKN3VN-13BvG3Jp.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-DxbfnZUt.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DxbfnZUt.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-DC8DVe0z.js → cose-bilkent-S5V4N54A-CO574VR8.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-BQjcdXnw.js → dagre-BM42HDAG-BEVJuqdY.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-BUPeBMwt.js → diagram-2AECGRRQ-CGCBS-dy.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-I_Q-Pnp6.js → diagram-5GNKFQAL-Dyq0_Rlp.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-B8WbbWJu.js → diagram-KO2AKTUF-BpiCh3Ed.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-CsACxgW7.js → diagram-LMA3HP47-XJeaihzL.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-lPuJxQED.js → diagram-OG6HWLK6-Bb_LX7wz.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-cU5ZGREz.js → erDiagram-TEJ5UH35-D-slZ-dN.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-Dr-vZTBV.js → flowDiagram-I6XJVG4X-B_SOoctl.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-CXiWZ0R8.js → ganttDiagram-6RSMTGT7-B3UsanUx.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-PDvLBbvz.js → gitGraphDiagram-PVQCEYII-C9RzuImP.js} +1 -1
- package/dist/client/assets/{index-BQltseJ-.js → index-BnYPnnod.js} +1 -1
- package/dist/client/assets/{index-RMlMPKY7.js → index-CQBB3Uf4.js} +1 -1
- package/dist/client/assets/index-DamovIDe.js +752 -0
- package/dist/client/assets/{index-zpHL2aYW.css → index-yeyi8oQf.css} +1 -1
- package/dist/client/assets/{infoDiagram-5YYISTIA-Re9fOUPS.js → infoDiagram-5YYISTIA-CcaL3dnH.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-BTazB_7p.js → ishikawaDiagram-YF4QCWOH-Drl0TLDq.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-pGUoqxHl.js → journeyDiagram-JHISSGLW-Ia46_5df.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-C2RzCJrM.js → kanban-definition-UN3LZRKU-CkDPRy8x.js} +1 -1
- package/dist/client/assets/{linear-Be3WPYKf.js → linear-BJ5HYD7N.js} +1 -1
- package/dist/client/assets/{mermaid.core-GdPXct3q.js → mermaid.core-DohfSRYI.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-DvktVTUU.js → mindmap-definition-RKZ34NQL-CN1i3cXM.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-DvC_m4m5.js → pieDiagram-4H26LBE5-Boz7UISz.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-SWtidcZL.js → quadrantDiagram-W4KKPZXB-DOBPTFZq.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-CQEHDx1W.js → requirementDiagram-4Y6WPE33-c0jMOQGX.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-C0PTA3gP.js → sankeyDiagram-5OEKKPKP-D-AwIne0.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-D-x7SXoo.js → sequenceDiagram-3UESZ5HK-BgMjP-Q1.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-BhcGVfs1.js → stateDiagram-AJRCARHV-8qvFMuv5.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-Doe04F42.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-JYTlKPB-.js → timeline-definition-PNZ67QCA-Q1t7Xr5L.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-KjNL1Qpz.js → vennDiagram-CIIHVFJN-atIUY_uM.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-DcljmmEY.js → wardley-L42UT6IY-Dg8nGqpF.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-Pbq6ALgg.js → wardleyDiagram-YWT4CUSO-B26t7Hde.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-G_r_2Cvk.js → xychartDiagram-2RQKCTM6-uz4jM4Hi.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/core/ask/run-ask.d.ts +37 -0
- package/dist/core/ask/run-ask.js +171 -0
- package/dist/core/ask/run-ask.js.map +1 -0
- package/dist/server/config.d.ts +6 -0
- package/dist/server/config.js +19 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/core/plugin-host/host.js +8 -8
- package/dist/server/core/plugin-host/host.js.map +1 -1
- package/dist/server/core/plugin-host/types.d.ts +22 -7
- package/dist/server/db/migrations/030_remote_session.sql +29 -0
- package/dist/server/entities/ac/plugin.js +1 -1
- package/dist/server/entities/ac/plugin.js.map +1 -1
- package/dist/server/entities/ac/system-prompt.js +6 -6
- package/dist/server/entities/ac/system-prompt.js.map +1 -1
- package/dist/server/entities/database-table/plugin.js +1 -1
- package/dist/server/entities/database-table/plugin.js.map +1 -1
- package/dist/server/entities/dto/plugin.js +1 -1
- package/dist/server/entities/dto/plugin.js.map +1 -1
- package/dist/server/entities/endpoint/plugin.js +1 -1
- package/dist/server/entities/endpoint/plugin.js.map +1 -1
- package/dist/server/entities/ui-view/plugin.js +1 -1
- package/dist/server/entities/ui-view/plugin.js.map +1 -1
- package/dist/server/external-skills/brief-implementer-template.d.ts +1 -1
- package/dist/server/external-skills/brief-implementer-template.js +18 -14
- package/dist/server/external-skills/brief-implementer-template.js.map +1 -1
- package/dist/server/index.js +19 -6
- package/dist/server/index.js.map +1 -1
- package/dist/server/mcp/brief-tools.d.ts +2 -4
- package/dist/server/mcp/brief-tools.js +4 -25
- package/dist/server/mcp/brief-tools.js.map +1 -1
- package/dist/server/mcp/c4s-tools.d.ts +15 -0
- package/dist/server/mcp/c4s-tools.js +67 -0
- package/dist/server/mcp/c4s-tools.js.map +1 -0
- package/dist/server/routes/agent-turn.js +9 -2
- package/dist/server/routes/agent-turn.js.map +1 -1
- package/dist/server/routes/errors.js +3 -0
- package/dist/server/routes/errors.js.map +1 -1
- package/dist/server/routes/remote-account.d.ts +8 -0
- package/dist/server/routes/remote-account.js +49 -0
- package/dist/server/routes/remote-account.js.map +1 -0
- package/dist/server/services/chat-context.d.ts +4 -0
- package/dist/server/services/chat-context.js +24 -6
- package/dist/server/services/chat-context.js.map +1 -1
- package/dist/server/services/plan.js +6 -6
- package/dist/server/services/plan.js.map +1 -1
- package/dist/server/services/remote-auth.d.ts +31 -0
- package/dist/server/services/remote-auth.js +124 -0
- package/dist/server/services/remote-auth.js.map +1 -0
- package/dist/server/services/remote-http-client.d.ts +85 -0
- package/dist/server/services/remote-http-client.js +107 -0
- package/dist/server/services/remote-http-client.js.map +1 -0
- package/dist/server/skills/brief-author/SKILL.md +0 -1
- package/dist/shared/remote-account.d.ts +58 -0
- package/dist/shared/remote-account.js +8 -0
- package/dist/shared/remote-account.js.map +1 -0
- package/package.json +1 -1
- package/dist/client/assets/channel-B30S19wt.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-Bm4SZLsb.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Bm4SZLsb.js +0 -1
- package/dist/client/assets/index-YFPhJxE5.js +0 -737
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-2vcyLY1V.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-context.js","sourceRoot":"","sources":["../../../src/server/services/chat-context.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"chat-context.js","sourceRoot":"","sources":["../../../src/server/services/chat-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -141,10 +141,10 @@ export class PlanService {
|
|
|
141
141
|
return null;
|
|
142
142
|
return [
|
|
143
143
|
'<system-reminder>',
|
|
144
|
-
'
|
|
145
|
-
`
|
|
146
|
-
`
|
|
147
|
-
'
|
|
144
|
+
'The plan was updated in another thread.',
|
|
145
|
+
`Last version seen in this thread: v${lastSeen}.`,
|
|
146
|
+
`Current version: v${row.current_version}.`,
|
|
147
|
+
'Run get_plan to fetch the current plan before continuing.',
|
|
148
148
|
'</system-reminder>',
|
|
149
149
|
].join('\n');
|
|
150
150
|
}
|
|
@@ -268,7 +268,7 @@ export class PlanService {
|
|
|
268
268
|
if (mode === 'new-session') {
|
|
269
269
|
const { threadId: newThreadId } = this.attachThreadToPlan(plan.id);
|
|
270
270
|
this.chat.updateThreadSettings(newThreadId, { planMode: false });
|
|
271
|
-
const firstMessage = `
|
|
271
|
+
const firstMessage = `Executing plan v${plan.currentVersion} — disabling planMode and proceeding with implementation.`;
|
|
272
272
|
return {
|
|
273
273
|
mode: 'new-session',
|
|
274
274
|
newThreadId,
|
|
@@ -293,7 +293,7 @@ export class PlanService {
|
|
|
293
293
|
this.db
|
|
294
294
|
.prepare(`UPDATE chat_thread SET plan_mode = 0, updated_at = datetime('now') WHERE id = ?`)
|
|
295
295
|
.run(threadId);
|
|
296
|
-
const firstMessage = `
|
|
296
|
+
const firstMessage = `Executing plan v${plan.currentVersion} — disabling planMode and proceeding with implementation.`;
|
|
297
297
|
return {
|
|
298
298
|
mode: 'continue',
|
|
299
299
|
threadId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/server/services/plan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/server/services/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type Database from 'better-sqlite3';
|
|
2
|
+
import { RemoteHttpClient } from './remote-http-client.js';
|
|
3
|
+
import type { DeviceLoginPollResponse, DeviceLoginStartResponse, RemoteAccountResponse } from '../../shared/remote-account.js';
|
|
4
|
+
/**
|
|
5
|
+
* M24 — authenticates c4s against the remote API via OAuth Device Authorization
|
|
6
|
+
* Grant. Login is a human action (no MCP tool): the agent never logs in or
|
|
7
|
+
* touches the device flow. The token is an operational secret kept in
|
|
8
|
+
* `remote_session` and never returned to the UI.
|
|
9
|
+
*/
|
|
10
|
+
export declare class RemoteAuthService {
|
|
11
|
+
private db;
|
|
12
|
+
private client;
|
|
13
|
+
private flow;
|
|
14
|
+
constructor(db: Database.Database, client: RemoteHttpClient);
|
|
15
|
+
/** POST /api/remote-account/login/start. */
|
|
16
|
+
startDeviceFlow(): Promise<DeviceLoginStartResponse>;
|
|
17
|
+
/** POST /api/remote-account/login/poll. */
|
|
18
|
+
pollDeviceFlow(): Promise<DeviceLoginPollResponse>;
|
|
19
|
+
/** GET /api/remote-account. Never exposes access_token. */
|
|
20
|
+
getCurrentAccount(): RemoteAccountResponse;
|
|
21
|
+
/** POST /api/remote-account/logout. Idempotent; also aborts an in-flight device flow. */
|
|
22
|
+
logout(): RemoteAccountResponse;
|
|
23
|
+
private readSession;
|
|
24
|
+
/**
|
|
25
|
+
* Fetch the account profile (email/status), then atomically replace the
|
|
26
|
+
* single `remote_session` row. Profile-first so a failed enrich never leaves
|
|
27
|
+
* a half-written row; a 401 here means the freshly-issued token was already
|
|
28
|
+
* rejected — surface as unauthenticated without persisting.
|
|
29
|
+
*/
|
|
30
|
+
private persistSession;
|
|
31
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { DomainError } from './tags.js';
|
|
2
|
+
import { RemoteUnauthorizedError, } from './remote-http-client.js';
|
|
3
|
+
/**
|
|
4
|
+
* M24 — authenticates c4s against the remote API via OAuth Device Authorization
|
|
5
|
+
* Grant. Login is a human action (no MCP tool): the agent never logs in or
|
|
6
|
+
* touches the device flow. The token is an operational secret kept in
|
|
7
|
+
* `remote_session` and never returned to the UI.
|
|
8
|
+
*/
|
|
9
|
+
export class RemoteAuthService {
|
|
10
|
+
db;
|
|
11
|
+
client;
|
|
12
|
+
flow = null;
|
|
13
|
+
constructor(db, client) {
|
|
14
|
+
this.db = db;
|
|
15
|
+
this.client = client;
|
|
16
|
+
}
|
|
17
|
+
/** POST /api/remote-account/login/start. */
|
|
18
|
+
async startDeviceFlow() {
|
|
19
|
+
const r = await this.client.startDeviceFlow();
|
|
20
|
+
this.flow = {
|
|
21
|
+
deviceCode: r.device_code,
|
|
22
|
+
interval: r.interval,
|
|
23
|
+
expiresAt: Date.now() + r.expires_in * 1000,
|
|
24
|
+
};
|
|
25
|
+
// device_code is intentionally NOT returned — the backend supplies it when polling.
|
|
26
|
+
return {
|
|
27
|
+
user_code: r.user_code,
|
|
28
|
+
verification_uri: r.verification_uri,
|
|
29
|
+
verification_uri_complete: r.verification_uri_complete,
|
|
30
|
+
interval: r.interval,
|
|
31
|
+
expires_in: r.expires_in,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/** POST /api/remote-account/login/poll. */
|
|
35
|
+
async pollDeviceFlow() {
|
|
36
|
+
if (!this.flow) {
|
|
37
|
+
throw new DomainError('NO_ACTIVE_FLOW', 'no active device flow; call login/start first');
|
|
38
|
+
}
|
|
39
|
+
const result = await this.client.pollDeviceToken(this.flow.deviceCode);
|
|
40
|
+
if (result.ok) {
|
|
41
|
+
const account = await this.persistSession(result.token);
|
|
42
|
+
this.flow = null;
|
|
43
|
+
return { status: 'authorized', account };
|
|
44
|
+
}
|
|
45
|
+
const status = mapPollStatus(result.error);
|
|
46
|
+
if (status === 'slow_down') {
|
|
47
|
+
this.flow.interval += 5; // RFC 8628: back off by a fixed step
|
|
48
|
+
return { status, interval: this.flow.interval };
|
|
49
|
+
}
|
|
50
|
+
if (status !== 'pending') {
|
|
51
|
+
this.flow = null; // terminal — drop the flow
|
|
52
|
+
return { status, message: result.description };
|
|
53
|
+
}
|
|
54
|
+
return { status }; // pending — keep polling
|
|
55
|
+
}
|
|
56
|
+
/** GET /api/remote-account. Never exposes access_token. */
|
|
57
|
+
getCurrentAccount() {
|
|
58
|
+
const row = this.readSession();
|
|
59
|
+
return row ? toRemoteAccount(row) : { connected: false };
|
|
60
|
+
}
|
|
61
|
+
/** POST /api/remote-account/logout. Idempotent; also aborts an in-flight device flow. */
|
|
62
|
+
logout() {
|
|
63
|
+
this.flow = null;
|
|
64
|
+
this.db.prepare('DELETE FROM remote_session').run();
|
|
65
|
+
return { connected: false };
|
|
66
|
+
}
|
|
67
|
+
// --- internals ----------------------------------------------------------
|
|
68
|
+
readSession() {
|
|
69
|
+
return (this.db.prepare('SELECT * FROM remote_session LIMIT 1').get() ?? null);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Fetch the account profile (email/status), then atomically replace the
|
|
73
|
+
* single `remote_session` row. Profile-first so a failed enrich never leaves
|
|
74
|
+
* a half-written row; a 401 here means the freshly-issued token was already
|
|
75
|
+
* rejected — surface as unauthenticated without persisting.
|
|
76
|
+
*/
|
|
77
|
+
async persistSession(token) {
|
|
78
|
+
let profile;
|
|
79
|
+
try {
|
|
80
|
+
profile = await this.client.getAccount(token.access_token);
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
if (err instanceof RemoteUnauthorizedError) {
|
|
84
|
+
throw new DomainError('REMOTE_UNAUTHORIZED', 'remote session expired; log in again');
|
|
85
|
+
}
|
|
86
|
+
throw err;
|
|
87
|
+
}
|
|
88
|
+
const tx = this.db.transaction(() => {
|
|
89
|
+
this.db.prepare('DELETE FROM remote_session').run();
|
|
90
|
+
this.db
|
|
91
|
+
.prepare(`INSERT INTO remote_session
|
|
92
|
+
(access_token, token_id, issued_at, remote_account_id, account_email, account_status)
|
|
93
|
+
VALUES (?, ?, ?, ?, ?, ?)`)
|
|
94
|
+
.run(token.access_token, token.token_id, token.issued_at, token.account_id, profile.email, profile.status);
|
|
95
|
+
});
|
|
96
|
+
tx();
|
|
97
|
+
return this.getCurrentAccount();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/** Maps the remote device-token enum onto M24's own poll-status enum. */
|
|
101
|
+
function mapPollStatus(error) {
|
|
102
|
+
switch (error) {
|
|
103
|
+
case 'authorization_pending':
|
|
104
|
+
return 'pending';
|
|
105
|
+
case 'slow_down':
|
|
106
|
+
return 'slow_down';
|
|
107
|
+
case 'expired_token':
|
|
108
|
+
return 'expired';
|
|
109
|
+
case 'access_denied':
|
|
110
|
+
return 'denied';
|
|
111
|
+
case 'invalid_grant':
|
|
112
|
+
return 'invalid';
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function toRemoteAccount(row) {
|
|
116
|
+
return {
|
|
117
|
+
connected: true,
|
|
118
|
+
remoteAccountId: row.remote_account_id,
|
|
119
|
+
accountEmail: row.account_email,
|
|
120
|
+
accountStatus: row.account_status === 'deactivated' ? 'deactivated' : 'active',
|
|
121
|
+
connectedAt: row.connected_at,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=remote-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-auth.js","sourceRoot":"","sources":["../../../src/server/services/remote-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M24 — the single abstraction over `fetch` to the remote claude4spec-API.
|
|
3
|
+
* Owned by M24, consumed by future M25; no other module talks to the remote
|
|
4
|
+
* directly. Base URL = `config.remoteApiUrl ?? PROD_REMOTE_URL` (the override is
|
|
5
|
+
* dev/staging only — it is never persisted to `remote_session`, never logged,
|
|
6
|
+
* and is not a secret). The Bearer is injected into owner-only calls only;
|
|
7
|
+
* `/v1/auth/device/*` are unauthenticated.
|
|
8
|
+
*
|
|
9
|
+
* The remote wire contracts mirrored below are the claude4spec-api M02/M03 DTOs
|
|
10
|
+
* (`@c4s/types`), duplicated here as local interfaces because the two repos do
|
|
11
|
+
* not share a package.
|
|
12
|
+
*/
|
|
13
|
+
/** Hardcoded production remote. `config.remoteApiUrl` overrides for dev/staging. */
|
|
14
|
+
export declare const PROD_REMOTE_URL = "https://claude4spec.inharness.ai";
|
|
15
|
+
export interface DeviceCodeResponse {
|
|
16
|
+
device_code: string;
|
|
17
|
+
user_code: string;
|
|
18
|
+
verification_uri: string;
|
|
19
|
+
verification_uri_complete: string;
|
|
20
|
+
expires_in: number;
|
|
21
|
+
interval: number;
|
|
22
|
+
}
|
|
23
|
+
export interface DeviceTokenResponse {
|
|
24
|
+
access_token: string;
|
|
25
|
+
token_type: 'Bearer';
|
|
26
|
+
token_id: string;
|
|
27
|
+
account_id: string;
|
|
28
|
+
issued_at: string;
|
|
29
|
+
}
|
|
30
|
+
export type DeviceTokenError = 'authorization_pending' | 'slow_down' | 'expired_token' | 'access_denied' | 'invalid_grant';
|
|
31
|
+
export interface DeviceTokenErrorResponse {
|
|
32
|
+
error: DeviceTokenError;
|
|
33
|
+
error_description?: string;
|
|
34
|
+
}
|
|
35
|
+
export type AccountStatus = 'active' | 'deactivated';
|
|
36
|
+
export interface AccountProfileResponse {
|
|
37
|
+
id: string;
|
|
38
|
+
email: string;
|
|
39
|
+
status: AccountStatus;
|
|
40
|
+
}
|
|
41
|
+
/** Result of the polling exchange: a one-time success or a polling-state error. */
|
|
42
|
+
export type DeviceTokenResult = {
|
|
43
|
+
ok: true;
|
|
44
|
+
token: DeviceTokenResponse;
|
|
45
|
+
} | {
|
|
46
|
+
ok: false;
|
|
47
|
+
error: DeviceTokenError;
|
|
48
|
+
description?: string;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Thrown when an owner-only remote call returns 401 — the caller must clear the
|
|
52
|
+
* local `remote_session` and force a fresh device flow.
|
|
53
|
+
*/
|
|
54
|
+
export declare class RemoteUnauthorizedError extends Error {
|
|
55
|
+
constructor(message?: string);
|
|
56
|
+
}
|
|
57
|
+
/** Thrown for transport-level failures (connection refused / 5xx / unexpected shape). */
|
|
58
|
+
export declare class RemoteRequestError extends Error {
|
|
59
|
+
status?: number | undefined;
|
|
60
|
+
constructor(message: string, status?: number | undefined);
|
|
61
|
+
}
|
|
62
|
+
export declare class RemoteHttpClient {
|
|
63
|
+
private readonly baseUrl;
|
|
64
|
+
constructor(remoteApiUrl: string | null | undefined);
|
|
65
|
+
get base(): string;
|
|
66
|
+
/** POST /v1/auth/device/code — unauthenticated. Initiates the device flow. */
|
|
67
|
+
startDeviceFlow(): Promise<DeviceCodeResponse>;
|
|
68
|
+
/**
|
|
69
|
+
* POST /v1/auth/device/token — unauthenticated, authorized by the device_code
|
|
70
|
+
* itself. 200 → token (issued once); 400 → polling-state envelope
|
|
71
|
+
* (authorization_pending / slow_down / terminal).
|
|
72
|
+
*/
|
|
73
|
+
pollDeviceToken(deviceCode: string): Promise<DeviceTokenResult>;
|
|
74
|
+
/** GET /v1/account — owner-only (Bearer). 401 → RemoteUnauthorizedError. */
|
|
75
|
+
getAccount(accessToken: string): Promise<AccountProfileResponse>;
|
|
76
|
+
private fetchRemote;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Startup reachability check for an explicit `config.remoteApiUrl` override.
|
|
80
|
+
* "Reachable" = the host answers at all (any HTTP status); only a transport
|
|
81
|
+
* failure / timeout counts as unreachable. No fallback to PROD_REMOTE_URL — an
|
|
82
|
+
* explicit override must be honoured or reported (brief §1). Throws with the
|
|
83
|
+
* exact contract message.
|
|
84
|
+
*/
|
|
85
|
+
export declare function assertRemoteApiReachable(remoteApiUrl: string, timeoutMs?: number): Promise<void>;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M24 — the single abstraction over `fetch` to the remote claude4spec-API.
|
|
3
|
+
* Owned by M24, consumed by future M25; no other module talks to the remote
|
|
4
|
+
* directly. Base URL = `config.remoteApiUrl ?? PROD_REMOTE_URL` (the override is
|
|
5
|
+
* dev/staging only — it is never persisted to `remote_session`, never logged,
|
|
6
|
+
* and is not a secret). The Bearer is injected into owner-only calls only;
|
|
7
|
+
* `/v1/auth/device/*` are unauthenticated.
|
|
8
|
+
*
|
|
9
|
+
* The remote wire contracts mirrored below are the claude4spec-api M02/M03 DTOs
|
|
10
|
+
* (`@c4s/types`), duplicated here as local interfaces because the two repos do
|
|
11
|
+
* not share a package.
|
|
12
|
+
*/
|
|
13
|
+
/** Hardcoded production remote. `config.remoteApiUrl` overrides for dev/staging. */
|
|
14
|
+
export const PROD_REMOTE_URL = 'https://claude4spec.inharness.ai';
|
|
15
|
+
/**
|
|
16
|
+
* Thrown when an owner-only remote call returns 401 — the caller must clear the
|
|
17
|
+
* local `remote_session` and force a fresh device flow.
|
|
18
|
+
*/
|
|
19
|
+
export class RemoteUnauthorizedError extends Error {
|
|
20
|
+
constructor(message = 'remote session expired') {
|
|
21
|
+
super(message);
|
|
22
|
+
this.name = 'RemoteUnauthorizedError';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/** Thrown for transport-level failures (connection refused / 5xx / unexpected shape). */
|
|
26
|
+
export class RemoteRequestError extends Error {
|
|
27
|
+
status;
|
|
28
|
+
constructor(message, status) {
|
|
29
|
+
super(message);
|
|
30
|
+
this.status = status;
|
|
31
|
+
this.name = 'RemoteRequestError';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export class RemoteHttpClient {
|
|
35
|
+
baseUrl;
|
|
36
|
+
constructor(remoteApiUrl) {
|
|
37
|
+
this.baseUrl = (remoteApiUrl ?? PROD_REMOTE_URL).replace(/\/+$/, '');
|
|
38
|
+
}
|
|
39
|
+
get base() {
|
|
40
|
+
return this.baseUrl;
|
|
41
|
+
}
|
|
42
|
+
/** POST /v1/auth/device/code — unauthenticated. Initiates the device flow. */
|
|
43
|
+
async startDeviceFlow() {
|
|
44
|
+
const res = await this.fetchRemote('/v1/auth/device/code', { method: 'POST' });
|
|
45
|
+
if (!res.ok)
|
|
46
|
+
throw new RemoteRequestError(`device/code failed (HTTP ${res.status})`, res.status);
|
|
47
|
+
return (await res.json());
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* POST /v1/auth/device/token — unauthenticated, authorized by the device_code
|
|
51
|
+
* itself. 200 → token (issued once); 400 → polling-state envelope
|
|
52
|
+
* (authorization_pending / slow_down / terminal).
|
|
53
|
+
*/
|
|
54
|
+
async pollDeviceToken(deviceCode) {
|
|
55
|
+
const res = await this.fetchRemote('/v1/auth/device/token', {
|
|
56
|
+
method: 'POST',
|
|
57
|
+
headers: { 'content-type': 'application/json' },
|
|
58
|
+
body: JSON.stringify({ device_code: deviceCode }),
|
|
59
|
+
});
|
|
60
|
+
if (res.ok) {
|
|
61
|
+
return { ok: true, token: (await res.json()) };
|
|
62
|
+
}
|
|
63
|
+
if (res.status === 400) {
|
|
64
|
+
const body = (await res.json().catch(() => null));
|
|
65
|
+
if (body?.error)
|
|
66
|
+
return { ok: false, error: body.error, description: body.error_description };
|
|
67
|
+
}
|
|
68
|
+
throw new RemoteRequestError(`device/token failed (HTTP ${res.status})`, res.status);
|
|
69
|
+
}
|
|
70
|
+
/** GET /v1/account — owner-only (Bearer). 401 → RemoteUnauthorizedError. */
|
|
71
|
+
async getAccount(accessToken) {
|
|
72
|
+
const res = await this.fetchRemote('/v1/account', {
|
|
73
|
+
method: 'GET',
|
|
74
|
+
headers: { authorization: `Bearer ${accessToken}` },
|
|
75
|
+
});
|
|
76
|
+
if (res.status === 401)
|
|
77
|
+
throw new RemoteUnauthorizedError();
|
|
78
|
+
if (!res.ok)
|
|
79
|
+
throw new RemoteRequestError(`GET /v1/account failed (HTTP ${res.status})`, res.status);
|
|
80
|
+
return (await res.json());
|
|
81
|
+
}
|
|
82
|
+
async fetchRemote(path, init) {
|
|
83
|
+
try {
|
|
84
|
+
return await fetch(`${this.baseUrl}${path}`, init);
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
throw new RemoteRequestError(`request to remote ${path} failed: ${err.message}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Startup reachability check for an explicit `config.remoteApiUrl` override.
|
|
93
|
+
* "Reachable" = the host answers at all (any HTTP status); only a transport
|
|
94
|
+
* failure / timeout counts as unreachable. No fallback to PROD_REMOTE_URL — an
|
|
95
|
+
* explicit override must be honoured or reported (brief §1). Throws with the
|
|
96
|
+
* exact contract message.
|
|
97
|
+
*/
|
|
98
|
+
export async function assertRemoteApiReachable(remoteApiUrl, timeoutMs = 3000) {
|
|
99
|
+
const base = remoteApiUrl.replace(/\/+$/, '');
|
|
100
|
+
try {
|
|
101
|
+
await fetch(`${base}/v1/health`, { method: 'HEAD', signal: AbortSignal.timeout(timeoutMs) });
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
throw new Error(`config.json: field 'remoteApiUrl': invalid URL or unreachable host`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=remote-http-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-http-client.js","sourceRoot":"","sources":["../../../src/server/services/remote-http-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,6 @@ The system prompt already binds you to the **self-contained invariant**: the bri
|
|
|
21
21
|
**Available tools:**
|
|
22
22
|
- `get_brief` — read the current brief state. Returns `{ frontmatter, body, content, hash }`. Use `hash` as `expectedHash` for the next `update_brief` to detect concurrent edits.
|
|
23
23
|
- `update_brief` — edit the body via `replace`, `append`, or `insert_after_section`. You CANNOT modify frontmatter (immutable: `type`, `from_release`, `to_release`, `generated_at`, `generator_version`).
|
|
24
|
-
- `list_brief_versions` / `get_brief_version` — inspect history, diff against earlier versions.
|
|
25
24
|
- `release-tools` (read-only) — `release_list`, `release_show`, and `release_diff(fromIdOrName, toIdOrName, include?, entityTypes?)` returning a self-contained `MCPReleaseDiff`. Use `release_diff(brief.frontmatter.from_release, brief.frontmatter.to_release)` to obtain the `MCPReleaseDiff` that grounds your narrative — one round-trip is all you need.
|
|
26
25
|
|
|
27
26
|
**`release-tools` is the ONLY plugin MCP available in this thread.** There is no `get_endpoint` / `get_dto` / `get_database-table` / `get_ui-view` / `get_ac`, no `Read pages/...`, no `Grep`, no filesystem. The `MCPReleaseDiff` payload is your entire ground truth — every snapshot you need is carried inside it.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M24 Remote Account — DTOs exposed by `/api/remote-account/*` to the c4s
|
|
3
|
+
* client. These are M24's OWN surface, intentionally decoupled from the
|
|
4
|
+
* remote-API wire format (claude4spec-api `@c4s/types`). The backend
|
|
5
|
+
* (`remote-auth.ts`) maps the remote's device-flow contract onto these shapes.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* `POST /api/remote-account/login/start` — device flow initiated. The raw
|
|
9
|
+
* `device_code` is NOT exposed: the backend keeps it in memory (single flow per
|
|
10
|
+
* c4s instance) and supplies it itself when polling, so the secret never lands
|
|
11
|
+
* in the browser.
|
|
12
|
+
*/
|
|
13
|
+
export interface DeviceLoginStartResponse {
|
|
14
|
+
/** Short human-readable code (format `XXXX-XXXX`) typed on the verification page. */
|
|
15
|
+
user_code: string;
|
|
16
|
+
/** Verification page URL without the code (fallback). */
|
|
17
|
+
verification_uri: string;
|
|
18
|
+
/** Verification URL with the code prefilled — primary CTA (qr-code-ready). */
|
|
19
|
+
verification_uri_complete: string;
|
|
20
|
+
/** Seconds between polls; the client increases it when the remote says `slow_down`. */
|
|
21
|
+
interval: number;
|
|
22
|
+
/** Flow TTL in seconds; once exceeded the flow goes terminal `expired`. */
|
|
23
|
+
expires_in: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Status surfaced by `POST /api/remote-account/login/poll`. Non-terminal:
|
|
27
|
+
* `pending` / `slow_down` (keep polling). Terminal: `authorized` (session
|
|
28
|
+
* saved) and `expired` / `denied` / `invalid` (stop). Mapped from the remote
|
|
29
|
+
* device-token enum (`authorization_pending | slow_down | expired_token |
|
|
30
|
+
* access_denied | invalid_grant`).
|
|
31
|
+
*/
|
|
32
|
+
export type DeviceLoginStatus = 'pending' | 'slow_down' | 'authorized' | 'expired' | 'denied' | 'invalid';
|
|
33
|
+
export interface DeviceLoginPollResponse {
|
|
34
|
+
status: DeviceLoginStatus;
|
|
35
|
+
/** Only for `slow_down` — new recommended interval (seconds). */
|
|
36
|
+
interval?: number;
|
|
37
|
+
/** User-facing message for terminal errors. */
|
|
38
|
+
message?: string;
|
|
39
|
+
/** Only for `authorized` — lets the UI jump straight to "connected as X" without a follow-up GET. */
|
|
40
|
+
account?: RemoteAccountResponse;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* `GET /api/remote-account` — the sidebar's identity source. NEVER exposes
|
|
44
|
+
* `access_token`. Stable contract consumed by the sidebar (TanStack Query key
|
|
45
|
+
* `["remote-account"]`) and, later, by M25 publish.
|
|
46
|
+
*/
|
|
47
|
+
export interface RemoteAccountResponse {
|
|
48
|
+
/** `true` when a `remote_session` row exists. */
|
|
49
|
+
connected: boolean;
|
|
50
|
+
/** UUID of the remote account (`remote_session.remote_account_id`). */
|
|
51
|
+
remoteAccountId?: string;
|
|
52
|
+
/** UI label — the only "connected as X" identity the remote exposes. */
|
|
53
|
+
accountEmail?: string;
|
|
54
|
+
/** `deactivated` blocks publish (M25). */
|
|
55
|
+
accountStatus?: 'active' | 'deactivated';
|
|
56
|
+
/** ISO 8601 from `remote_session.connected_at`. */
|
|
57
|
+
connectedAt?: string;
|
|
58
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M24 Remote Account — DTOs exposed by `/api/remote-account/*` to the c4s
|
|
3
|
+
* client. These are M24's OWN surface, intentionally decoupled from the
|
|
4
|
+
* remote-API wire format (claude4spec-api `@c4s/types`). The backend
|
|
5
|
+
* (`remote-auth.ts`) maps the remote's device-flow contract onto these shapes.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=remote-account.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-account.js","sourceRoot":"","sources":["../../src/shared/remote-account.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inharness-ai/claude4spec",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"description": "Plan the whole system before your agent writes a line of code. Local-first planning layer with structured entities and typed relations.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Michael Tomala <mi.tomala@gmail.com>",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ai as o,aj as n}from"./mermaid.core-GdPXct3q.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-BjvyGtK3.js";import{_ as i}from"./mermaid.core-GdPXct3q.js";import"./chunk-FMBD7UC4-Ckx-Hc8U.js";import"./chunk-ND2GUHAM-DSIVVmYM.js";import"./chunk-55IACEB6-MhREYXzo.js";import"./chunk-2J33WTMH-DZFNNwID.js";import"./index-YFPhJxE5.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-BjvyGtK3.js";import{_ as i}from"./mermaid.core-GdPXct3q.js";import"./chunk-FMBD7UC4-Ckx-Hc8U.js";import"./chunk-ND2GUHAM-DSIVVmYM.js";import"./chunk-55IACEB6-MhREYXzo.js";import"./chunk-2J33WTMH-DZFNNwID.js";import"./index-YFPhJxE5.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
|