@aiassesstech/sam 0.2.1 → 0.2.2

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/index.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  export { default } from './plugin.js';
2
2
  export { PipelineManager } from './pipeline/pipeline-manager.js';
3
3
  export { PipelineStore } from './pipeline/pipeline-store.js';
4
+ export { SamMemory } from './memory/sam-memory.js';
4
5
  export type { PipelineStage, EngineeringRequest, PipelineData, SamStatusResult, PipelineFilter, RequestAction, ReportType, SamPluginConfig, } from './pipeline/types.js';
5
6
  export { PIPELINE_STAGES, STAGE_ORDER, DEFAULT_CONFIG } from './pipeline/types.js';
7
+ export type { FleetContext } from './tools/sam-fleet-tools.js';
8
+ export type { MemoryWriterLike } from './memory/sam-memory.js';
6
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEnF,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export { default } from './plugin.js';
2
2
  export { PipelineManager } from './pipeline/pipeline-manager.js';
3
3
  export { PipelineStore } from './pipeline/pipeline-store.js';
4
+ export { SamMemory } from './memory/sam-memory.js';
4
5
  export { PIPELINE_STAGES, STAGE_ORDER, DEFAULT_CONFIG } from './pipeline/types.js';
5
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAa7D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAanD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Sam Memory Integration — wraps MemoryWriter from @aiassesstech/mighty-mark
3
+ *
4
+ * Provides Sam-specific memory write methods that follow the event types
5
+ * and tag conventions from SPEC-FLEET-MEMORY-INFRASTRUCTURE-1.0.
6
+ *
7
+ * All methods are fire-and-forget — memory failures never block pipeline ops.
8
+ */
9
+ import type { EngineeringRequest, PipelineStage } from '../pipeline/types.js';
10
+ export interface MemoryWriterLike {
11
+ write(opts: {
12
+ agent: string;
13
+ type: string;
14
+ tags: string[];
15
+ title: string;
16
+ body: string;
17
+ date?: string;
18
+ metadata?: Record<string, string | number | boolean>;
19
+ }): Promise<string>;
20
+ }
21
+ export declare class SamMemory {
22
+ private writer;
23
+ constructor(writer: MemoryWriterLike);
24
+ onERCreated(er: EngineeringRequest): Promise<void>;
25
+ onStageChange(er: EngineeringRequest, previousStage: PipelineStage): Promise<void>;
26
+ onERDelivered(er: EngineeringRequest): Promise<void>;
27
+ onERBlocked(er: EngineeringRequest): Promise<void>;
28
+ onFailureEscalation(er: EngineeringRequest): Promise<void>;
29
+ }
30
+ //# sourceMappingURL=sam-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sam-memory.d.ts","sourceRoot":"","sources":["../../src/memory/sam-memory.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE9E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,IAAI,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;KACtD,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACrB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAmB;gBAErB,MAAM,EAAE,gBAAgB;IAI9B,WAAW,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBlD,aAAa,CAAC,EAAE,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BlF,aAAa,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BpD,WAAW,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBlD,mBAAmB,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CA0BjE"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Sam Memory Integration — wraps MemoryWriter from @aiassesstech/mighty-mark
3
+ *
4
+ * Provides Sam-specific memory write methods that follow the event types
5
+ * and tag conventions from SPEC-FLEET-MEMORY-INFRASTRUCTURE-1.0.
6
+ *
7
+ * All methods are fire-and-forget — memory failures never block pipeline ops.
8
+ */
9
+ export class SamMemory {
10
+ writer;
11
+ constructor(writer) {
12
+ this.writer = writer;
13
+ }
14
+ async onERCreated(er) {
15
+ try {
16
+ await this.writer.write({
17
+ agent: 'sam',
18
+ type: 'engineering-request',
19
+ tags: ['engineering', 'intake', er.requester],
20
+ title: `ER Created: ${er.id} — ${er.description}`,
21
+ body: `## Engineering Request Created\n\n` +
22
+ `**ID**: ${er.id}\n` +
23
+ `**Requester**: ${er.requester}\n` +
24
+ `**Description**: ${er.description}\n` +
25
+ `**Stage**: ${er.stage}\n` +
26
+ `**Created**: ${er.createdAt}\n`,
27
+ metadata: { er_id: er.id, requester: er.requester, stage: er.stage },
28
+ });
29
+ }
30
+ catch (err) {
31
+ console.warn(`[sam] Memory write failed (er-created): ${err}`);
32
+ }
33
+ }
34
+ async onStageChange(er, previousStage) {
35
+ try {
36
+ await this.writer.write({
37
+ agent: 'sam',
38
+ type: 'engineering-stage-change',
39
+ tags: ['engineering', er.id, er.stage.toLowerCase()],
40
+ title: `Stage Change: ${er.id} — ${previousStage} → ${er.stage}`,
41
+ body: `## Stage Transition\n\n` +
42
+ `**ER**: ${er.id}\n` +
43
+ `**From**: ${previousStage}\n` +
44
+ `**To**: ${er.stage}\n` +
45
+ `**Build Attempts**: ${er.buildAttempts}\n` +
46
+ `**Blocked**: ${er.blocked ? `Yes — ${er.blocker}` : 'No'}\n` +
47
+ `**Timestamp**: ${er.updatedAt}\n`,
48
+ metadata: {
49
+ er_id: er.id,
50
+ from_stage: previousStage,
51
+ to_stage: er.stage,
52
+ build_attempts: er.buildAttempts,
53
+ },
54
+ });
55
+ }
56
+ catch (err) {
57
+ console.warn(`[sam] Memory write failed (stage-change): ${err}`);
58
+ }
59
+ }
60
+ async onERDelivered(er) {
61
+ try {
62
+ await this.writer.write({
63
+ agent: 'sam',
64
+ type: 'engineering-delivered',
65
+ tags: ['engineering', 'delivered', er.id],
66
+ title: `ER Delivered: ${er.id} — ${er.description}`,
67
+ body: `## Engineering Request Delivered\n\n` +
68
+ `**ID**: ${er.id}\n` +
69
+ `**Requester**: ${er.requester}\n` +
70
+ `**Description**: ${er.description}\n` +
71
+ `**Created**: ${er.createdAt}\n` +
72
+ `**Delivered**: ${er.deliveredAt}\n` +
73
+ `**Build Attempts**: ${er.buildAttempts}\n` +
74
+ `**Notes**: ${er.notes.length > 0 ? er.notes.join('; ') : 'None'}\n`,
75
+ metadata: {
76
+ er_id: er.id,
77
+ requester: er.requester,
78
+ build_attempts: er.buildAttempts,
79
+ },
80
+ });
81
+ }
82
+ catch (err) {
83
+ console.warn(`[sam] Memory write failed (er-delivered): ${err}`);
84
+ }
85
+ }
86
+ async onERBlocked(er) {
87
+ try {
88
+ await this.writer.write({
89
+ agent: 'sam',
90
+ type: 'engineering-stage-change',
91
+ tags: ['engineering', er.id, 'blocked'],
92
+ title: `ER Blocked: ${er.id} — ${er.blocker}`,
93
+ body: `## Engineering Request Blocked\n\n` +
94
+ `**ER**: ${er.id}\n` +
95
+ `**Stage**: ${er.stage}\n` +
96
+ `**Blocker**: ${er.blocker}\n` +
97
+ `**Timestamp**: ${er.updatedAt}\n`,
98
+ metadata: { er_id: er.id, stage: er.stage, blocker: er.blocker ?? 'unknown' },
99
+ });
100
+ }
101
+ catch (err) {
102
+ console.warn(`[sam] Memory write failed (er-blocked): ${err}`);
103
+ }
104
+ }
105
+ async onFailureEscalation(er) {
106
+ try {
107
+ await this.writer.write({
108
+ agent: 'sam',
109
+ type: 'failure-escalation',
110
+ tags: ['engineering', 'failure', 'escalation', er.id],
111
+ title: `Build Failure Escalation: ${er.id}`,
112
+ body: `## Build Failure Escalation — 3 Attempts Exhausted\n\n` +
113
+ `**ER**: ${er.id}\n` +
114
+ `**Description**: ${er.description}\n` +
115
+ `**Requester**: ${er.requester}\n` +
116
+ `**Stage**: ${er.stage}\n` +
117
+ `**Build Attempts**: ${er.buildAttempts}\n` +
118
+ `**Timestamp**: ${er.updatedAt}\n\n` +
119
+ `Escalating to Jessie per Rule 3 (Three Attempts, Then Escalate).\n`,
120
+ metadata: {
121
+ er_id: er.id,
122
+ build_attempts: er.buildAttempts,
123
+ escalation_reason: 'three_failed_builds',
124
+ },
125
+ });
126
+ }
127
+ catch (err) {
128
+ console.warn(`[sam] Memory write failed (failure-escalation): ${err}`);
129
+ }
130
+ }
131
+ }
132
+ //# sourceMappingURL=sam-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sam-memory.js","sourceRoot":"","sources":["../../src/memory/sam-memory.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export declare class PipelineManager {
19
19
  private closeER;
20
20
  private validateStageTransition;
21
21
  findER(id: string): EngineeringRequest | undefined;
22
+ getRequest(id: string): EngineeringRequest | undefined;
22
23
  getAll(): EngineeringRequest[];
23
24
  getActive(): EngineeringRequest[];
24
25
  getBlocked(): EngineeringRequest[];
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-manager.d.ts","sourceRoot":"","sources":["../../src/pipeline/pipeline-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAGlB,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAC;AAIpB,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAgB;gBAEjB,MAAM,EAAE,eAAe;IAI7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,kBAAkB,CAAA;KAAE,CAAC;YAarG,QAAQ;YAoCR,QAAQ;YA4DR,OAAO;IA6BrB,OAAO,CAAC,uBAAuB;IAkC/B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIlD,MAAM,IAAI,kBAAkB,EAAE;IAI9B,SAAS,IAAI,kBAAkB,EAAE;IAMjC,UAAU,IAAI,kBAAkB,EAAE;IAIlC,WAAW,IAAI,kBAAkB,EAAE;IAInC,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC,UAAU,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;CASpF"}
1
+ {"version":3,"file":"pipeline-manager.d.ts","sourceRoot":"","sources":["../../src/pipeline/pipeline-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAGlB,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAC;AAIpB,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAgB;gBAEjB,MAAM,EAAE,eAAe;IAI7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,kBAAkB,CAAA;KAAE,CAAC;YAarG,QAAQ;YAoCR,QAAQ;YA4DR,OAAO;IA6BrB,OAAO,CAAC,uBAAuB;IAkC/B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIlD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAItD,MAAM,IAAI,kBAAkB,EAAE;IAI9B,SAAS,IAAI,kBAAkB,EAAE;IAMjC,UAAU,IAAI,kBAAkB,EAAE;IAIlC,WAAW,IAAI,kBAAkB,EAAE;IAInC,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC,UAAU,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;CASpF"}
@@ -158,6 +158,9 @@ export class PipelineManager {
158
158
  findER(id) {
159
159
  return this.store.getData().requests.find((r) => r.id === id);
160
160
  }
161
+ getRequest(id) {
162
+ return this.findER(id);
163
+ }
161
164
  getAll() {
162
165
  return [...this.store.getData().requests];
163
166
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-manager.js","sourceRoot":"","sources":["../../src/pipeline/pipeline-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline-manager.js","sourceRoot":"","sources":["../../src/pipeline/pipeline-manager.ts"],"names":[],"mappings":"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"}
package/dist/plugin.d.ts CHANGED
@@ -7,9 +7,9 @@
7
7
  * This adapter:
8
8
  * 1. Reads plugin config from api.config (+ openclaw.json fallback)
9
9
  * 2. Creates PipelineManager eagerly (not lazy)
10
- * 3. Registers 4 Phase 1 tools, 1 command
11
- * 4. Conditionally registers Phase 2 sandbox tools (when sandboxEnabled)
12
- * 5. Wires fleet-bus integration (optional peer dep)
10
+ * 3. Registers Phase 1 tools (always), Phase 2 fleet+memory tools (when available)
11
+ * 4. Wires fleet-bus integration with enhanced inbound handlers
12
+ * 5. Initializes MemoryWriter (optional peer dep) for ER lifecycle events
13
13
  *
14
14
  * CRITICAL: Every registration follows the EXACT shapes from
15
15
  * GUIDE-OPENCLAW-PLUGIN-DEVELOPMENT.md to avoid the 7 registration traps.
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAiEH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,GAAG,QAgJxC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAsFH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,GAAG,QAiJxC"}
package/dist/plugin.js CHANGED
@@ -7,9 +7,9 @@
7
7
  * This adapter:
8
8
  * 1. Reads plugin config from api.config (+ openclaw.json fallback)
9
9
  * 2. Creates PipelineManager eagerly (not lazy)
10
- * 3. Registers 4 Phase 1 tools, 1 command
11
- * 4. Conditionally registers Phase 2 sandbox tools (when sandboxEnabled)
12
- * 5. Wires fleet-bus integration (optional peer dep)
10
+ * 3. Registers Phase 1 tools (always), Phase 2 fleet+memory tools (when available)
11
+ * 4. Wires fleet-bus integration with enhanced inbound handlers
12
+ * 5. Initializes MemoryWriter (optional peer dep) for ER lifecycle events
13
13
  *
14
14
  * CRITICAL: Every registration follows the EXACT shapes from
15
15
  * GUIDE-OPENCLAW-PLUGIN-DEVELOPMENT.md to avoid the 7 registration traps.
@@ -29,6 +29,8 @@ import { createStatusTool } from './tools/sam-status.js';
29
29
  import { createPipelineTool } from './tools/sam-pipeline.js';
30
30
  import { createRequestTool } from './tools/sam-request.js';
31
31
  import { createReportTool } from './tools/sam-report.js';
32
+ import { createFleetTaskStatusTool, createFleetTaskCompleteTool } from './tools/sam-fleet-tools.js';
33
+ import { SamMemory } from './memory/sam-memory.js';
32
34
  import { DEFAULT_CONFIG } from './pipeline/types.js';
33
35
  // ── Config Helpers ───────────────────────────────────────────────
34
36
  function resolveOpenClawHome() {
@@ -75,6 +77,19 @@ function resolveConfig(api) {
75
77
  telegramChatId: raw.telegramChatId,
76
78
  };
77
79
  }
80
+ // ── Tool Registration Helper ─────────────────────────────────────
81
+ // Wraps tool objects in the exact shape OpenClaw gateway expects
82
+ // (method syntax execute, proper parameters.type)
83
+ function registerTool(api, tool, optional = false) {
84
+ api.registerTool({
85
+ name: tool.name,
86
+ description: tool.description,
87
+ parameters: tool.parameters,
88
+ async execute(_toolCallId, params) {
89
+ return tool.execute(_toolCallId, params);
90
+ },
91
+ }, { optional });
92
+ }
78
93
  // ── Plugin Entry Point ───────────────────────────────────────────
79
94
  export default function register(api) {
80
95
  const cfg = resolveConfig(api);
@@ -83,49 +98,23 @@ export default function register(api) {
83
98
  pipeline.initialize().catch((err) => {
84
99
  console.warn('[sam] Pipeline initialization warning (non-fatal):', err);
85
100
  });
86
- // Fleet-bus status tracker
101
+ // Shared mutable state for async fleet-bus + memory init
87
102
  let fleetBusState = 'standalone';
103
+ let samMemory = null;
104
+ let fleetContext = null;
88
105
  const getFleetBusStatus = () => fleetBusState;
89
106
  // ── Phase 1: Management Tools (always available) ────────────
90
107
  const statusTool = createStatusTool(pipeline, cfg, getFleetBusStatus);
91
- api.registerTool({
92
- name: statusTool.name,
93
- description: statusTool.description,
94
- parameters: statusTool.parameters,
95
- async execute(_toolCallId, params) {
96
- return statusTool.execute(_toolCallId, params);
97
- },
98
- }, { optional: false });
108
+ registerTool(api, statusTool);
99
109
  const pipelineTool = createPipelineTool(pipeline);
100
- api.registerTool({
101
- name: pipelineTool.name,
102
- description: pipelineTool.description,
103
- parameters: pipelineTool.parameters,
104
- async execute(_toolCallId, params) {
105
- return pipelineTool.execute(_toolCallId, params);
106
- },
107
- }, { optional: false });
108
- const requestTool = createRequestTool(pipeline);
109
- api.registerTool({
110
- name: requestTool.name,
111
- description: requestTool.description,
112
- parameters: requestTool.parameters,
113
- async execute(_toolCallId, params) {
114
- return requestTool.execute(_toolCallId, params);
115
- },
116
- }, { optional: false });
110
+ registerTool(api, pipelineTool);
111
+ const requestTool = createRequestTool(pipeline, () => samMemory, () => fleetContext);
112
+ registerTool(api, requestTool);
117
113
  const reportTool = createReportTool(pipeline);
118
- api.registerTool({
119
- name: reportTool.name,
120
- description: reportTool.description,
121
- parameters: reportTool.parameters,
122
- async execute(_toolCallId, params) {
123
- return reportTool.execute(_toolCallId, params);
124
- },
125
- }, { optional: false });
126
- // ── Phase 2: Execution Tools (conditional on sandbox) ───────
114
+ registerTool(api, reportTool);
115
+ // ── Phase 2: Sandbox Tools (conditional) ────────────────────
127
116
  if (cfg.sandboxEnabled) {
128
- console.log('[sam] Sandbox enabled — Phase 2 tools will be registered when implemented');
117
+ console.log('[sam] Sandbox enabled — Phase 3 tools will be registered when implemented');
129
118
  }
130
119
  // ── Command: /sam ──────────────────────────────────────────
131
120
  api.registerCommand({
@@ -141,7 +130,10 @@ export default function register(api) {
141
130
  '- **sam_pipeline** — Full engineering pipeline view with filters\n' +
142
131
  '- **sam_request** — Create, update, or close Engineering Requests\n' +
143
132
  '- **sam_report** — Engineering reports (summary, detailed, debt)\n\n' +
144
- '**Sandbox (Phase 2):**\n' +
133
+ '**Fleet Communications (Phase 2):**\n' +
134
+ '- **sam_fleet_task_status** — Report ER stage change to Jessie\n' +
135
+ '- **sam_fleet_task_complete** — Signal ER completion to Jessie\n\n' +
136
+ '**Sandbox (Phase 3):**\n' +
145
137
  '- **sam_execute** — Run code in Docker sandbox\n' +
146
138
  '- **sam_sandbox** — Manage sandbox lifecycle\n' +
147
139
  '- **sam_test** — Run test suites in sandbox\n' +
@@ -150,43 +142,160 @@ export default function register(api) {
150
142
  };
151
143
  },
152
144
  });
145
+ // ── Memory Integration (optional peer dep) ──────────────────
146
+ const mightyMarkMod = '@aiassesstech/mighty-mark';
147
+ import(mightyMarkMod)
148
+ .then(({ MemoryWriter }) => {
149
+ const writer = new MemoryWriter();
150
+ samMemory = new SamMemory(writer);
151
+ console.log('[sam] Memory integration active (MemoryWriter from mighty-mark)');
152
+ })
153
+ .catch(() => {
154
+ console.log('[sam] MemoryWriter unavailable — memory writes disabled');
155
+ });
153
156
  // ── Fleet Bus Integration ──────────────────────────────────
154
- const fleetBusMod = "@aiassesstech/fleet-bus";
157
+ const fleetBusMod = '@aiassesstech/fleet-bus';
155
158
  import(fleetBusMod)
156
- .then(async ({ FleetBus, SAM_CARD, createTransport, fleetReceive }) => {
159
+ .then(async ({ FleetBus, SAM_CARD, createTransport, fleetSend, fleetReceive }) => {
157
160
  const bus = FleetBus.create(api, {
158
- agentId: "sam",
159
- role: "engineer",
161
+ agentId: 'sam',
162
+ role: 'engineer',
160
163
  card: SAM_CARD,
161
164
  });
162
165
  bus.start();
163
166
  const transport = await createTransport();
164
167
  if (transport) {
168
+ // Store fleet context for tools and side-effect sends
169
+ fleetContext = { bus, transport, fleetSend };
170
+ // ── Phase 2: Register fleet outbound tools ──────────
171
+ const taskStatusTool = createFleetTaskStatusTool(pipeline, fleetContext);
172
+ registerTool(api, taskStatusTool, true);
173
+ const taskCompleteTool = createFleetTaskCompleteTool(pipeline, fleetContext);
174
+ registerTool(api, taskCompleteTool, true);
175
+ console.log('[sam] Fleet tools registered: sam_fleet_task_status, sam_fleet_task_complete');
176
+ // ── Enhanced Inbound Handlers ───────────────────────
165
177
  fleetReceive(bus, {
166
178
  methods: [
167
- "task/assign",
168
- "veto/issue",
169
- "fleet/ping",
170
- "fleet/pong",
171
- "fleet/broadcast",
179
+ 'task/assign',
180
+ 'veto/issue',
181
+ 'fleet/ping',
182
+ 'fleet/pong',
183
+ 'fleet/broadcast',
172
184
  ],
173
185
  handler: async (msg) => {
174
- console.log(`[sam] Fleet message received: ${msg.method} from ${msg.from}`);
186
+ const method = msg.method;
187
+ const from = msg.from ?? 'unknown';
188
+ console.log(`[sam] Fleet message: ${method} from ${from}`);
189
+ if (method === 'task/assign') {
190
+ await handleTaskAssign(msg, pipeline, fleetContext, samMemory);
191
+ }
192
+ else if (method === 'veto/issue') {
193
+ await handleVetoIssue(msg, pipeline, samMemory);
194
+ }
195
+ else if (method === 'fleet/ping') {
196
+ await handleFleetPing(msg, pipeline, cfg, fleetContext);
197
+ }
175
198
  },
176
199
  });
177
200
  fleetBusState = 'connected';
178
- console.log("[sam] Fleet bus: active (full participation)");
201
+ console.log('[sam] Fleet bus: active (full participation)');
179
202
  }
180
203
  else {
181
204
  fleetBusState = 'observer';
182
- console.log("[sam] Fleet bus: observer mode (gateway transport unavailable)");
205
+ console.log('[sam] Fleet bus: observer mode (gateway transport unavailable)');
183
206
  }
184
207
  })
185
208
  .catch(() => {
186
209
  fleetBusState = 'standalone';
187
- console.warn("[sam] Fleet bus unavailable — operating standalone");
210
+ console.warn('[sam] Fleet bus unavailable — operating standalone');
188
211
  });
189
- console.log('[sam] Plugin registered: sam_status, sam_pipeline, sam_request, sam_report tools; /sam command' +
190
- (cfg.sandboxEnabled ? '; Phase 2 sandbox tools pending' : ''));
212
+ const toolList = [
213
+ 'sam_status', 'sam_pipeline', 'sam_request', 'sam_report',
214
+ ].join(', ');
215
+ console.log(`[sam] Plugin registered: ${toolList} tools; /sam command` +
216
+ (cfg.sandboxEnabled ? '; Phase 3 sandbox tools pending' : ''));
217
+ }
218
+ // ── Fleet Inbound Handlers ───────────────────────────────────────
219
+ async function handleTaskAssign(msg, pipeline, fleet, memory) {
220
+ const p = msg.params ?? {};
221
+ const description = p.description ?? p.summary ?? 'Task assigned via fleet-bus';
222
+ const requester = msg.from ?? 'jessie';
223
+ try {
224
+ const result = await pipeline.handleRequest({
225
+ action: 'create',
226
+ description,
227
+ requester,
228
+ });
229
+ if (result.success && result.er) {
230
+ console.log(`[sam] Created ${result.er.id} from task/assign by ${requester}`);
231
+ if (memory) {
232
+ await memory.onERCreated(result.er);
233
+ }
234
+ // Acknowledge back to sender
235
+ await fleet.fleetSend(fleet.bus, fleet.transport, {
236
+ to: requester,
237
+ method: 'task/status',
238
+ params: {
239
+ taskId: result.er.id,
240
+ agentId: 'sam',
241
+ stage: 'INTAKE',
242
+ summary: `Acknowledged: ${result.er.id} created — ${description}`,
243
+ timestamp: result.er.createdAt,
244
+ },
245
+ });
246
+ }
247
+ }
248
+ catch (err) {
249
+ console.error(`[sam] Failed to handle task/assign: ${err}`);
250
+ }
251
+ }
252
+ async function handleVetoIssue(msg, pipeline, memory) {
253
+ const p = msg.params ?? {};
254
+ const erId = p.taskId ?? p.er_id;
255
+ const reason = p.reason ?? p.summary ?? 'Vetoed by fleet governance';
256
+ if (!erId) {
257
+ console.warn('[sam] veto/issue received without taskId — ignoring');
258
+ return;
259
+ }
260
+ try {
261
+ const result = await pipeline.handleRequest({
262
+ action: 'update',
263
+ er_id: erId,
264
+ blocker: `VETO: ${reason} (from ${msg.from ?? 'unknown'})`,
265
+ });
266
+ if (result.success && result.er) {
267
+ console.log(`[sam] ${erId} blocked by veto from ${msg.from}`);
268
+ if (memory) {
269
+ await memory.onERBlocked(result.er);
270
+ }
271
+ }
272
+ }
273
+ catch (err) {
274
+ console.error(`[sam] Failed to handle veto/issue: ${err}`);
275
+ }
276
+ }
277
+ async function handleFleetPing(msg, pipeline, cfg, fleet) {
278
+ const summary = pipeline.getSummary();
279
+ try {
280
+ await fleet.fleetSend(fleet.bus, fleet.transport, {
281
+ to: msg.from ?? 'broadcast',
282
+ method: 'fleet/pong',
283
+ params: {
284
+ agentId: 'sam',
285
+ currentStatus: 'active',
286
+ toolCount: 6,
287
+ pendingTasks: summary.active,
288
+ activeERs: summary.active,
289
+ blockedERs: summary.blocked,
290
+ sandboxStatus: cfg.sandboxEnabled ? 'available' : 'unavailable',
291
+ memoryUsageMB: Math.round(process.memoryUsage().heapUsed / 1024 / 1024),
292
+ uptimeMs: process.uptime() * 1000,
293
+ },
294
+ correlationId: msg.id,
295
+ });
296
+ }
297
+ catch (err) {
298
+ console.error(`[sam] Failed to send fleet/pong: ${err}`);
299
+ }
191
300
  }
192
301
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Phase 2 Fleet-Bus Outbound Tools
3
+ *
4
+ * Sam's routing constraint is `sandboxed` — outbound allowed:
5
+ * task/status, task/complete, fleet/ping, fleet/pong
6
+ *
7
+ * These tools wrap fleetSend() with Sam-specific logic.
8
+ * The LLM sees them as regular tools.
9
+ */
10
+ import type { PipelineManager } from '../pipeline/pipeline-manager.js';
11
+ export interface FleetContext {
12
+ bus: any;
13
+ transport: any;
14
+ fleetSend: (bus: any, transport: any, opts: any) => Promise<any>;
15
+ }
16
+ export declare function createFleetTaskStatusTool(pipeline: PipelineManager, fleet: FleetContext): {
17
+ name: string;
18
+ description: string;
19
+ parameters: {
20
+ type: "object";
21
+ properties: {
22
+ er_id: {
23
+ type: string;
24
+ description: string;
25
+ };
26
+ summary: {
27
+ type: string;
28
+ description: string;
29
+ };
30
+ };
31
+ required: string[];
32
+ };
33
+ execute(_toolCallId: string, params: Record<string, unknown>): Promise<{
34
+ content: {
35
+ type: string;
36
+ text: string;
37
+ }[];
38
+ isError: boolean;
39
+ } | {
40
+ content: {
41
+ type: string;
42
+ text: string;
43
+ }[];
44
+ isError?: undefined;
45
+ }>;
46
+ };
47
+ export declare function createFleetTaskCompleteTool(pipeline: PipelineManager, fleet: FleetContext): {
48
+ name: string;
49
+ description: string;
50
+ parameters: {
51
+ type: "object";
52
+ properties: {
53
+ er_id: {
54
+ type: string;
55
+ description: string;
56
+ };
57
+ artifact_ref: {
58
+ type: string;
59
+ description: string;
60
+ };
61
+ summary: {
62
+ type: string;
63
+ description: string;
64
+ };
65
+ };
66
+ required: string[];
67
+ };
68
+ execute(_toolCallId: string, params: Record<string, unknown>): Promise<{
69
+ content: {
70
+ type: string;
71
+ text: string;
72
+ }[];
73
+ isError: boolean;
74
+ } | {
75
+ content: {
76
+ type: string;
77
+ text: string;
78
+ }[];
79
+ isError?: undefined;
80
+ }>;
81
+ };
82
+ //# sourceMappingURL=sam-fleet-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sam-fleet-tools.d.ts","sourceRoot":"","sources":["../../src/tools/sam-fleet-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,GAAG,CAAC;IACT,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAClE;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY;;;;;;;;;;;;;;;kBAkB3D,MAAM,EAAE;;yBAEN,MAAM,UAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;;;;;;EAuDrE;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY;;;;;;;;;;;;;;;;;;;kBAsB7D,MAAM,EAAE;;yBAEN,MAAM,UAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;;;;;;EAyDrE"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Phase 2 Fleet-Bus Outbound Tools
3
+ *
4
+ * Sam's routing constraint is `sandboxed` — outbound allowed:
5
+ * task/status, task/complete, fleet/ping, fleet/pong
6
+ *
7
+ * These tools wrap fleetSend() with Sam-specific logic.
8
+ * The LLM sees them as regular tools.
9
+ */
10
+ export function createFleetTaskStatusTool(pipeline, fleet) {
11
+ return {
12
+ name: 'sam_fleet_task_status',
13
+ description: 'Report an Engineering Request stage change to Jessie (Commander) via fleet-bus. ' +
14
+ 'Use when an ER moves to a new pipeline stage. Sends task/status message.',
15
+ parameters: {
16
+ type: 'object',
17
+ properties: {
18
+ er_id: {
19
+ type: 'string',
20
+ description: 'Engineering Request ID (e.g. ER-2026-001)',
21
+ },
22
+ summary: {
23
+ type: 'string',
24
+ description: 'Brief description of the status update for Jessie',
25
+ },
26
+ },
27
+ required: ['er_id'],
28
+ },
29
+ async execute(_toolCallId, params) {
30
+ try {
31
+ const erId = params.er_id;
32
+ const summary = params.summary;
33
+ const er = pipeline.getRequest(erId);
34
+ if (!er) {
35
+ return {
36
+ content: [{ type: 'text', text: `ER not found: ${erId}` }],
37
+ isError: true,
38
+ };
39
+ }
40
+ const result = await fleet.fleetSend(fleet.bus, fleet.transport, {
41
+ to: 'jessie',
42
+ method: 'task/status',
43
+ params: {
44
+ taskId: er.id,
45
+ agentId: 'sam',
46
+ stage: er.stage,
47
+ blocked: er.blocked,
48
+ blocker: er.blocker,
49
+ buildAttempts: er.buildAttempts,
50
+ summary: summary ?? `${er.id} is now at stage ${er.stage}`,
51
+ timestamp: er.updatedAt,
52
+ },
53
+ });
54
+ return {
55
+ content: [{
56
+ type: 'text',
57
+ text: JSON.stringify({
58
+ sent: true,
59
+ method: 'task/status',
60
+ to: 'jessie',
61
+ er_id: er.id,
62
+ stage: er.stage,
63
+ fleetResult: {
64
+ success: result.success,
65
+ status: result.status,
66
+ },
67
+ }, null, 2),
68
+ }],
69
+ };
70
+ }
71
+ catch (err) {
72
+ return {
73
+ content: [{
74
+ type: 'text',
75
+ text: `sam_fleet_task_status error: ${err instanceof Error ? err.message : String(err)}`,
76
+ }],
77
+ isError: true,
78
+ };
79
+ }
80
+ },
81
+ };
82
+ }
83
+ export function createFleetTaskCompleteTool(pipeline, fleet) {
84
+ return {
85
+ name: 'sam_fleet_task_complete',
86
+ description: 'Signal ER completion to Jessie (Commander) via fleet-bus. ' +
87
+ 'Use when an ER reaches DELIVERED stage. Sends task/complete message with artifact reference.',
88
+ parameters: {
89
+ type: 'object',
90
+ properties: {
91
+ er_id: {
92
+ type: 'string',
93
+ description: 'Engineering Request ID (e.g. ER-2026-001)',
94
+ },
95
+ artifact_ref: {
96
+ type: 'string',
97
+ description: 'Reference to the delivered artifact (path, URL, or identifier)',
98
+ },
99
+ summary: {
100
+ type: 'string',
101
+ description: 'Completion summary for Jessie',
102
+ },
103
+ },
104
+ required: ['er_id'],
105
+ },
106
+ async execute(_toolCallId, params) {
107
+ try {
108
+ const erId = params.er_id;
109
+ const artifactRef = params.artifact_ref;
110
+ const summary = params.summary;
111
+ const er = pipeline.getRequest(erId);
112
+ if (!er) {
113
+ return {
114
+ content: [{ type: 'text', text: `ER not found: ${erId}` }],
115
+ isError: true,
116
+ };
117
+ }
118
+ const result = await fleet.fleetSend(fleet.bus, fleet.transport, {
119
+ to: 'jessie',
120
+ method: 'task/complete',
121
+ params: {
122
+ taskId: er.id,
123
+ agentId: 'sam',
124
+ description: er.description,
125
+ requester: er.requester,
126
+ artifactRef: artifactRef ?? 'N/A',
127
+ buildAttempts: er.buildAttempts,
128
+ summary: summary ?? `${er.id} delivered: ${er.description}`,
129
+ createdAt: er.createdAt,
130
+ deliveredAt: er.deliveredAt ?? er.updatedAt,
131
+ },
132
+ });
133
+ return {
134
+ content: [{
135
+ type: 'text',
136
+ text: JSON.stringify({
137
+ sent: true,
138
+ method: 'task/complete',
139
+ to: 'jessie',
140
+ er_id: er.id,
141
+ artifact_ref: artifactRef ?? 'N/A',
142
+ fleetResult: {
143
+ success: result.success,
144
+ status: result.status,
145
+ },
146
+ }, null, 2),
147
+ }],
148
+ };
149
+ }
150
+ catch (err) {
151
+ return {
152
+ content: [{
153
+ type: 'text',
154
+ text: `sam_fleet_task_complete error: ${err instanceof Error ? err.message : String(err)}`,
155
+ }],
156
+ isError: true,
157
+ };
158
+ }
159
+ },
160
+ };
161
+ }
162
+ //# sourceMappingURL=sam-fleet-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sam-fleet-tools.js","sourceRoot":"","sources":["../../src/tools/sam-fleet-tools.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
1
  /**
2
2
  * sam_request — Create, update, or close Engineering Requests
3
3
  *
4
- * Side effects: writes memory files (when MemoryWriter available),
5
- * sends fleet-bus task/status (when fleet-bus available).
4
+ * Phase 2 side effects:
5
+ * - Memory writes on create, stage change, close, block, and failure escalation
6
+ * - Fleet-bus task/status on create (notifies Jessie)
6
7
  */
7
8
  import type { PipelineManager } from '../pipeline/pipeline-manager.js';
8
- export declare function createRequestTool(pipeline: PipelineManager): {
9
+ import type { SamMemory } from '../memory/sam-memory.js';
10
+ import type { FleetContext } from './sam-fleet-tools.js';
11
+ export declare function createRequestTool(pipeline: PipelineManager, getMemory: () => SamMemory | null, getFleet: () => FleetContext | null): {
9
12
  name: string;
10
13
  description: string;
11
14
  parameters: {
@@ -1 +1 @@
1
- {"version":3,"file":"sam-request.d.ts","sourceRoot":"","sources":["../../src/tools/sam-request.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGvE,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0C7B,MAAM,EAAE;;yBAEP,MAAM,UAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;EAyCrE"}
1
+ {"version":3,"file":"sam-request.d.ts","sourceRoot":"","sources":["../../src/tools/sam-request.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,MAAM,SAAS,GAAG,IAAI,EACjC,QAAQ,EAAE,MAAM,YAAY,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2CP,MAAM,EAAE;;yBAEP,MAAM,UAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;EA+FrE"}
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * sam_request — Create, update, or close Engineering Requests
3
3
  *
4
- * Side effects: writes memory files (when MemoryWriter available),
5
- * sends fleet-bus task/status (when fleet-bus available).
4
+ * Phase 2 side effects:
5
+ * - Memory writes on create, stage change, close, block, and failure escalation
6
+ * - Fleet-bus task/status on create (notifies Jessie)
6
7
  */
7
- export function createRequestTool(pipeline) {
8
+ export function createRequestTool(pipeline, getMemory, getFleet) {
8
9
  return {
9
10
  name: 'sam_request',
10
11
  description: 'Create, update, or close Engineering Requests in the pipeline. ' +
@@ -58,7 +59,56 @@ export function createRequestTool(pipeline) {
58
59
  blocker: params.blocker,
59
60
  notes: params.notes,
60
61
  };
62
+ // Capture pre-update state for memory diff
63
+ let previousStage;
64
+ if (action.action === 'update' && action.er_id && action.stage) {
65
+ const existing = pipeline.getRequest(action.er_id);
66
+ if (existing) {
67
+ previousStage = existing.stage;
68
+ }
69
+ }
61
70
  const result = await pipeline.handleRequest(action);
71
+ // ── Phase 2 Side Effects (fire-and-forget) ──────────
72
+ if (result.success && result.er) {
73
+ const memory = getMemory();
74
+ const fleet = getFleet();
75
+ if (action.action === 'create') {
76
+ if (memory) {
77
+ memory.onERCreated(result.er).catch(() => { });
78
+ }
79
+ if (fleet) {
80
+ fleet.fleetSend(fleet.bus, fleet.transport, {
81
+ to: 'jessie',
82
+ method: 'task/status',
83
+ params: {
84
+ taskId: result.er.id,
85
+ agentId: 'sam',
86
+ stage: 'INTAKE',
87
+ summary: `New ER created: ${result.er.id} — ${result.er.description}`,
88
+ timestamp: result.er.createdAt,
89
+ },
90
+ }).catch(() => { });
91
+ }
92
+ }
93
+ if (action.action === 'update') {
94
+ if (action.stage && previousStage && previousStage !== action.stage) {
95
+ if (memory) {
96
+ memory.onStageChange(result.er, previousStage).catch(() => { });
97
+ }
98
+ }
99
+ if (action.blocker !== undefined && result.er.blocked && memory) {
100
+ memory.onERBlocked(result.er).catch(() => { });
101
+ }
102
+ if (result.er.buildAttempts >= 3 && result.er.stage === 'BUILD' && memory) {
103
+ memory.onFailureEscalation(result.er).catch(() => { });
104
+ }
105
+ }
106
+ if (action.action === 'close') {
107
+ if (memory) {
108
+ memory.onERDelivered(result.er).catch(() => { });
109
+ }
110
+ }
111
+ }
62
112
  return {
63
113
  content: [{
64
114
  type: 'text',
@@ -1 +1 @@
1
- {"version":3,"file":"sam-request.js","sourceRoot":"","sources":["../../src/tools/sam-request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sam-request.js","sourceRoot":"","sources":["../../src/tools/sam-request.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export function createStatusTool(pipeline, config, fleetBusStatus) {
16
16
  agent: {
17
17
  name: 'Sam',
18
18
  role: 'Chief Engineer',
19
- version: '0.2.0',
19
+ version: '0.2.2',
20
20
  internalName: 'SAM2',
21
21
  },
22
22
  pipeline: summary,
@@ -2,7 +2,7 @@
2
2
  "id": "sam",
3
3
  "name": "Sam — Chief Engineer",
4
4
  "description": "Chief Engineer plugin — engineering pipeline management, Docker sandbox execution, autonomous build/test/deliver lifecycle, fleet-bus communications, and searchable engineering memory.",
5
- "version": "0.2.0",
5
+ "version": "0.2.2",
6
6
  "entry": "dist/plugin.js",
7
7
  "configSchema": {
8
8
  "type": "object",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiassesstech/sam",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "Sam — Chief Engineer plugin for OpenClaw. Engineering pipeline, Docker sandbox, autonomous execution, fleet-bus communications.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",