@bpmsoftwaresolutions/ai-engine-client 1.1.73 → 1.1.75

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bpmsoftwaresolutions/ai-engine-client",
3
- "version": "1.1.73",
3
+ "version": "1.1.75",
4
4
  "description": "Thin npm client for the AI Engine operator and retrieval APIs",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
package/src/client.js CHANGED
@@ -2,19 +2,34 @@ import { AI_ENGINE_CLIENT_CAPABILITIES, GOVERNED_MUTATION_REQUIRED_CAPABILITIES,
2
2
  import { AGENT_COMMUNICATION_CONTRACT_VERSION, AGENT_COMMUNICATION_MESSAGE_KINDS, AGENT_COMMUNICATION_RECIPIENT_MODES, AGENT_COMMUNICATION_THREAD_TYPES, AGENT_COMMUNICATION_TRANSFER_KINDS, AGENT_COMMUNICATION_TRANSFER_LIFECYCLE_STATES, AGENT_COMMUNICATION_TRANSFER_MODES, AGENT_COMMUNICATION_TRANSFER_RECEIPT_TYPES } from './constants/agent-communications.js';
3
3
  import { AI_ENGINE_CLIENT_VERSION, DEFAULT_TIMEOUT_MS } from './constants/client.js';
4
4
  import { LOGA_CONTRACT, LOGA_INTERACTION_CONTRACT, LOGA_NAVIGATION_CONTRACT, LOGA_PROJECTION_WORKFLOW } from './constants/loga.js';
5
+ import { createActionsDomain } from './domains/actions.js';
5
6
  import { createBenchmarksDomain } from './domains/benchmarks.js';
6
7
  import { createCapabilitiesDomain } from './domains/capabilities.js';
8
+ import { createDatabaseDomain } from './domains/database.js';
7
9
  import { createContextAssemblyDomain } from './domains/context-assembly.js';
10
+ import { createDesignIntelligenceDomain } from './domains/design-intelligence.js';
11
+ import { createExecutionTelemetryDomain } from './domains/execution-telemetry.js';
8
12
  import { createImplementationTasksDomain } from './domains/implementation-tasks.js';
9
13
  import { createCurrentProjectDomain } from './domains/operator/current-project.js';
10
- import { createDatabaseBackupsDomain } from './domains/database/backups.js';
11
14
  import { createGatewayDomain } from './domains/gateway.js';
12
15
  import { createHealthDomain } from './domains/health.js';
16
+ import { createLogaDomain } from './domains/loga.js';
13
17
  import { createNotesLabDomain } from './domains/notes-lab.js';
18
+ import { createProjectionsDomain } from './domains/projections.js';
19
+ import { createReportsDomain } from './domains/reports.js';
14
20
  import { createPerformanceDomain } from './domains/performance.js';
21
+ import { createImplementationArtifactsDomain } from './domains/implementation-artifacts.js';
22
+ import { createImplementationEvidenceDomain } from './domains/implementation-evidence.js';
23
+ import { createImplementationGatesDomain } from './domains/implementation-gates.js';
24
+ import { createImplementationPacketsDomain } from './domains/implementation-packets.js';
25
+ import { createImplementationItemsDomain } from './domains/implementation-items.js';
15
26
  import { createRepoDomain } from './domains/repo.js';
27
+ import { createProjectCharteringDomain } from './domains/project-chartering.js';
28
+ import { createProjectsDomain } from './domains/projects.js';
16
29
  import { createOperatorStatusDomain } from './domains/operator-status.js';
30
+ import { createRoadmapsDomain } from './domains/roadmaps.js';
17
31
  import { createScriptDiscoveryDomain } from './domains/script-discovery.js';
32
+ import { createScriptsDomain } from './domains/scripts.js';
18
33
  import { createRetrievalManagementDomain } from './domains/retrieval-management.js';
19
34
  import { createRetrievalWrapperDomain } from './domains/retrieval-wrapper.js';
20
35
  import { createSelfLearningDomain } from './domains/self-learning.js';
@@ -359,14 +374,22 @@ export class AIEngineClient {
359
374
  this.operator = {
360
375
  currentProject: createCurrentProjectDomain(this),
361
376
  };
362
- this.database = {
363
- backups: createDatabaseBackupsDomain(this),
364
- };
377
+ this.database = createDatabaseDomain(this);
378
+ this.projects = createProjectsDomain(this);
379
+ this.projectChartering = createProjectCharteringDomain(this);
380
+ this.roadmaps = createRoadmapsDomain(this);
381
+ this.implementationPackets = createImplementationPacketsDomain(this);
382
+ this.implementationItems = createImplementationItemsDomain(this);
383
+ this.implementationArtifacts = createImplementationArtifactsDomain(this);
384
+ this.implementationEvidence = createImplementationEvidenceDomain(this);
385
+ this.implementationGates = createImplementationGatesDomain(this);
365
386
  this.implementationTasks = createImplementationTasksDomain(this);
366
387
  this.skills = createSkillsDomain(this);
367
388
  this.skillGovernance = createSkillGovernanceDomain(this);
368
389
  this.toolRegistry = createToolRegistryDomain(this);
369
390
  this.contextAssembly = createContextAssemblyDomain(this);
391
+ this.designIntelligence = createDesignIntelligenceDomain(this);
392
+ this.executionTelemetry = createExecutionTelemetryDomain(this);
370
393
  this.performance = createPerformanceDomain(this);
371
394
  this.retrievalWrapper = createRetrievalWrapperDomain(this);
372
395
  this.repo = createRepoDomain(this);
@@ -378,43 +401,10 @@ export class AIEngineClient {
378
401
  this.scriptDiscovery = createScriptDiscoveryDomain(this);
379
402
  this.searchContacts = createSearchContactsDomain(this);
380
403
  this.notesLab = createNotesLabDomain(this);
381
- this.loga = {
382
- submitUxGateRemediation: (payload) => this.submitUxGateRemediation(payload),
383
- listUxGateRemediations: (query) => this.listUxGateRemediations(query),
384
- getUxGateRemediation: (remediationId) => this.getUxGateRemediation(remediationId),
385
- appendUxRemediationTicketNote: (remediationId, payload) => this.appendUxRemediationTicketNote(remediationId, payload),
386
- listUxRemediationTicketNotes: (remediationId) => this.listUxRemediationTicketNotes(remediationId),
387
- promoteUxGateRemediationImplementationCandidate: (remediationId, payload) =>
388
- this.promoteUxGateRemediationImplementationCandidate(remediationId, payload),
389
- getUxGateRemediationProjection: (remediationId) => this.getLogaUxGateRemediationProjection(remediationId),
390
- getGeneratedExecutionUsabilityProjection: (query) => this.getLogaGeneratedExecutionUsabilityProjection(query),
391
- };
392
- this.executionTelemetry = {
393
- getCurrent: () => this.getExecutionTelemetryCurrent(),
394
- listProcessRuns: (query) => this.listExecutionProcessRuns(query),
395
- getProcessRun: (processRunId) => this.getExecutionProcessRun(processRunId),
396
- getGeneratedExecutionUsability: (query) => this.getGeneratedExecutionUsability(query),
397
- };
398
- this.scripts = {
399
- generate: (payload) => this.generateScript(payload),
400
- render: (scriptId) => this.renderScript(scriptId),
401
- submitArtifact: (scriptId, payload) => this.submitScriptArtifact(scriptId, payload),
402
- getRunEvidence: (query) => this.getScriptRunEvidence(query),
403
- };
404
- this.reports = {
405
- run: (request) => this.runReportDefinition(request),
406
- };
407
- this.projections = {
408
- render: (request) => this.renderProjection(request),
409
- getTransferHomeProjection: () => this.getLogaTransferHomeProjection(),
410
- getTransferInboxProjection: (query) => this.getLogaTransferInboxProjection(query),
411
- getTransferPacketProjection: (workTransferPacketId) => this.getLogaTransferPacketProjection(workTransferPacketId),
412
- getTransferChannelProjection: (transferChannelId) => this.getTransferChannelProjection(transferChannelId),
413
- getTransferNegotiationEventsProjection: (query) => this.getLogaTransferNegotiationEventsProjection(query),
414
- getTransferFrictionLaneProjection: (query) => this.getLogaTransferFrictionLaneProjection(query),
415
- getTransferReceiptsProjection: (query) => this.getLogaTransferReceiptsProjection(query),
416
- getTransferClosureReviewProjection: (workTransferPacketId) => this.getLogaTransferClosureReviewProjection(workTransferPacketId),
417
- };
404
+ this.loga = createLogaDomain(this);
405
+ this.scripts = createScriptsDomain(this);
406
+ this.reports = createReportsDomain(this);
407
+ this.projections = createProjectionsDomain(this);
418
408
  this.warehouse = {
419
409
  registerModernizationAsset: (request) => this.registerModernizationAsset(request),
420
410
  classifyModernizationAsset: (request) => this.classifyModernizationAsset(request),
@@ -424,9 +414,7 @@ export class AIEngineClient {
424
414
  getModernizationWrapperEvidence: (request) => this.getModernizationWrapperEvidence(request),
425
415
  decideModernizationGate: (request) => this.decideModernizationGate(request),
426
416
  };
427
- this.actions = {
428
- submit: (request) => this.submitActionIntent(request),
429
- };
417
+ this.actions = createActionsDomain(this);
430
418
  this.agentComms = {
431
419
  openThread: (request) => this.openCommunicationThread(request),
432
420
  getThread: (threadId) => this.getCommunicationThread(threadId),
@@ -5753,39 +5741,23 @@ export class AIEngineClient {
5753
5741
  }
5754
5742
 
5755
5743
  async createProjectDelivery(body = {}) {
5756
- return this._request('/api/project-delivery', { method: 'POST', body });
5744
+ return this.projectChartering.createProjectDelivery(body);
5757
5745
  }
5758
5746
 
5759
5747
  async approveProjectCharterIntent(projectId, body = {}) {
5760
- if (!projectId) throw new Error('projectId is required.');
5761
- return this._request(`/api/project-delivery/${encodeURIComponent(projectId)}/approve-charter-intent`, {
5762
- method: 'POST',
5763
- body,
5764
- });
5748
+ return this.projectChartering.approveProjectCharterIntent(projectId, body);
5765
5749
  }
5766
5750
 
5767
5751
  async approveImplementationRoadmap(projectId, body = {}) {
5768
- if (!projectId) throw new Error('projectId is required.');
5769
- return this._request(`/api/project-delivery/${encodeURIComponent(projectId)}/approve-roadmap`, {
5770
- method: 'POST',
5771
- body,
5772
- });
5752
+ return this.projectChartering.approveImplementationRoadmap(projectId, body);
5773
5753
  }
5774
5754
 
5775
5755
  async runProjectCharter(projectId, body = {}) {
5776
- if (!projectId) throw new Error('projectId is required.');
5777
- return this._request(`/api/project-delivery/${encodeURIComponent(projectId)}/run-charter`, {
5778
- method: 'POST',
5779
- body,
5780
- });
5756
+ return this.projectChartering.runProjectCharter(projectId, body);
5781
5757
  }
5782
5758
 
5783
5759
  async beginImplementationRoadmap(projectId, body = {}) {
5784
- if (!projectId) throw new Error('projectId is required.');
5785
- return this._request(`/api/project-delivery/${encodeURIComponent(projectId)}/begin-roadmap`, {
5786
- method: 'POST',
5787
- body,
5788
- });
5760
+ return this.projectChartering.beginImplementationRoadmap(projectId, body);
5789
5761
  }
5790
5762
 
5791
5763
  async routeImplementationItem(implementationItemId, body = {}) {
@@ -6212,49 +6184,37 @@ export class AIEngineClient {
6212
6184
  assignedTo,
6213
6185
  createAcceptanceSubtasks = true,
6214
6186
  } = {}) {
6215
- return this._request('/api/projects/charter', {
6216
- method: 'POST',
6217
- body: {
6218
- project_name: projectName,
6219
- objective,
6220
- business_context: businessContext,
6221
- success_criteria: successCriteria,
6222
- priority,
6223
- constraints,
6224
- in_scope: inScope,
6225
- out_of_scope: outOfScope,
6226
- assumptions,
6227
- linked_workflows: linkedWorkflows,
6228
- linked_workflow_slug: linkedWorkflowSlug,
6229
- testing_strategy: testingStrategy,
6230
- initial_context: initialContext,
6231
- requested_by: requestedBy,
6232
- ensure_task_surface: ensureTaskSurface,
6233
- assigned_to: assignedTo,
6234
- create_acceptance_subtasks: createAcceptanceSubtasks,
6235
- },
6187
+ return this.projectChartering.createProjectCharter({
6188
+ projectName,
6189
+ objective,
6190
+ businessContext,
6191
+ successCriteria,
6192
+ priority,
6193
+ constraints,
6194
+ inScope,
6195
+ outOfScope,
6196
+ assumptions,
6197
+ linkedWorkflows,
6198
+ linkedWorkflowSlug,
6199
+ testingStrategy,
6200
+ initialContext,
6201
+ requestedBy,
6202
+ ensureTaskSurface,
6203
+ assignedTo,
6204
+ createAcceptanceSubtasks,
6236
6205
  });
6237
6206
  }
6238
6207
 
6239
6208
  async listProjects({ limit, includeInactive, processStatus, charterStatus } = {}) {
6240
- return this._request('/api/operator/projects', {
6241
- query: {
6242
- limit,
6243
- include_inactive: includeInactive,
6244
- process_status: processStatus,
6245
- charter_status: charterStatus,
6246
- },
6247
- });
6209
+ return this.projects.listProjects({ limit, includeInactive, processStatus, charterStatus });
6248
6210
  }
6249
6211
 
6250
6212
  async getProject(projectId) {
6251
- return this._request(`/api/operator/projects/${projectId}`);
6213
+ return this.projects.getProject(projectId);
6252
6214
  }
6253
6215
 
6254
6216
  async listProjectWorkflowRuns(projectId, { limit = 25 } = {}) {
6255
- return this._request(`/api/operator/projects/${projectId}/workflow-runs`, {
6256
- query: { limit },
6257
- });
6217
+ return this.projects.listProjectWorkflowRuns(projectId, { limit });
6258
6218
  }
6259
6219
 
6260
6220
  async closeProject(projectId, {
@@ -6325,26 +6285,23 @@ export class AIEngineClient {
6325
6285
  }
6326
6286
 
6327
6287
  async getProjectCharterReport(projectId) {
6328
- return this._request(`/api/operator/projects/${projectId}/charter/report`);
6288
+ return this.projects.getProjectCharterReport(projectId);
6329
6289
  }
6330
6290
 
6331
6291
  async createProjectMarkdownDownload(projectId, { reportType, includeMarkdown = false } = {}) {
6332
- return this._request(`/api/operator/projects/${projectId}/markdown-report-downloads`, {
6333
- method: 'POST',
6334
- body: { report_type: reportType, include_markdown: includeMarkdown },
6335
- });
6292
+ return this.projects.createProjectMarkdownDownload(projectId, { reportType, includeMarkdown });
6336
6293
  }
6337
6294
 
6338
6295
  async downloadProjectMarkdownReport(projectId, reportType) {
6339
- return this._requestText(`/api/operator/projects/${projectId}/markdown-reports/${reportType}/download`);
6296
+ return this.projects.downloadProjectMarkdownReport(projectId, reportType);
6340
6297
  }
6341
6298
 
6342
6299
  async downloadProjectCharterReportMarkdown(projectId) {
6343
- return this.downloadProjectMarkdownReport(projectId, 'charter');
6300
+ return this.projects.downloadProjectCharterReportMarkdown(projectId);
6344
6301
  }
6345
6302
 
6346
6303
  async getProjectBundle(projectId) {
6347
- return this._request(`/api/operator/projects/${projectId}/bundle`);
6304
+ return this.projects.getProjectBundle(projectId);
6348
6305
  }
6349
6306
 
6350
6307
  async resumeProjectWork({
@@ -6355,17 +6312,13 @@ export class AIEngineClient {
6355
6312
  requireClaim,
6356
6313
  workflowRunLimit,
6357
6314
  } = {}) {
6358
- const normalizedProjectIdentifier = cleanText(projectIdentifier) || cleanText(projectId);
6359
- if (!normalizedProjectIdentifier) {
6360
- throw new Error('projectIdentifier is required.');
6361
- }
6362
- return this._request(`/api/operator/projects/${encodeURIComponent(normalizedProjectIdentifier)}/resume-context`, {
6363
- query: {
6364
- actor_mode: actorMode,
6365
- execution_intent: executionIntent,
6366
- require_claim: requireClaim,
6367
- workflow_run_limit: workflowRunLimit,
6368
- },
6315
+ return this.projects.resumeProjectWork({
6316
+ projectIdentifier,
6317
+ projectId,
6318
+ actorMode,
6319
+ executionIntent,
6320
+ requireClaim,
6321
+ workflowRunLimit,
6369
6322
  });
6370
6323
  }
6371
6324
 
@@ -6863,29 +6816,27 @@ export class AIEngineClient {
6863
6816
  // ─── Roadmaps ──────────────────────────────────────────────────────────────
6864
6817
 
6865
6818
  async listProjectRoadmaps({ includeInactive } = {}) {
6866
- return this._request('/api/operator/projects/implementation-roadmaps', {
6867
- query: { include_inactive: includeInactive },
6868
- });
6819
+ return this.roadmaps.listProjectRoadmaps({ includeInactive });
6869
6820
  }
6870
6821
 
6871
6822
  async getProjectRoadmap(projectId) {
6872
- return this._request(`/api/operator/projects/${projectId}/implementation-roadmap`);
6823
+ return this.roadmaps.getProjectRoadmap(projectId);
6873
6824
  }
6874
6825
 
6875
6826
  async getProjectRoadmapSummary(projectId) {
6876
- return this._request(`/api/operator/projects/${projectId}/implementation-roadmap/summary`);
6827
+ return this.roadmaps.getProjectRoadmapSummary(projectId);
6877
6828
  }
6878
6829
 
6879
6830
  async getProjectRoadmapActiveItem(projectId) {
6880
- return this._request(`/api/operator/projects/${projectId}/implementation-roadmap/active-item`);
6831
+ return this.roadmaps.getProjectRoadmapActiveItem(projectId);
6881
6832
  }
6882
6833
 
6883
6834
  async getProjectImplementationRoadmapReport(projectId) {
6884
- return this._request(`/api/operator/projects/${projectId}/implementation-roadmap/report`);
6835
+ return this.roadmaps.getProjectImplementationRoadmapReport(projectId);
6885
6836
  }
6886
6837
 
6887
6838
  async downloadProjectImplementationRoadmapReportMarkdown(projectId) {
6888
- return this.downloadProjectMarkdownReport(projectId, 'implementation_roadmap');
6839
+ return this.roadmaps.downloadProjectImplementationRoadmapReportMarkdown(projectId);
6889
6840
  }
6890
6841
 
6891
6842
  async ensureProjectRoadmapTaskSurface(projectId, {
@@ -6893,13 +6844,10 @@ export class AIEngineClient {
6893
6844
  assignedTo,
6894
6845
  createAcceptanceSubtasks = true,
6895
6846
  } = {}) {
6896
- return this._request(`/api/operator/projects/${projectId}/implementation-roadmap/task-surface`, {
6897
- method: 'POST',
6898
- body: {
6899
- requested_by: requestedBy,
6900
- assigned_to: assignedTo,
6901
- create_acceptance_subtasks: createAcceptanceSubtasks,
6902
- },
6847
+ return this.roadmaps.ensureProjectRoadmapTaskSurface(projectId, {
6848
+ requestedBy,
6849
+ assignedTo,
6850
+ createAcceptanceSubtasks,
6903
6851
  });
6904
6852
  }
6905
6853
 
@@ -7004,13 +6952,11 @@ export class AIEngineClient {
7004
6952
  }
7005
6953
 
7006
6954
  async listProjectOpenTasks(projectId) {
7007
- return this._request(`/api/operator/projects/${projectId}/open-tasks`);
6955
+ return this.projects.listProjectOpenTasks(projectId);
7008
6956
  }
7009
6957
 
7010
6958
  async getProjectPerformanceMetrics(projectId, { workflowId, workflowRunId, sinceUtc } = {}) {
7011
- return this._request(`/api/operator/projects/${projectId}/performance-metrics`, {
7012
- query: { workflow_id: workflowId, workflow_run_id: workflowRunId, since_utc: sinceUtc },
7013
- });
6959
+ return this.projects.getProjectPerformanceMetrics(projectId, { workflowId, workflowRunId, sinceUtc });
7014
6960
  }
7015
6961
 
7016
6962
  _resolveImplementationPacketProjectReference(packetPayload) {
@@ -7085,127 +7031,76 @@ export class AIEngineClient {
7085
7031
  executionType,
7086
7032
  executionPurpose,
7087
7033
  } = {}) {
7088
- const normalizedClaimId = cleanText(claimId);
7089
- const normalizedClaimProjectId = cleanText(claimProjectId) || cleanText(projectId);
7090
- const normalizedClaimedItemId = cleanText(claimedItemId) || implementationItemId;
7091
- const normalizedWorkflowRunId = cleanText(workflowRunId);
7092
- const normalizedAgentSessionId = cleanText(agentSessionId);
7093
- const normalizedAllowedMutationSurfaces = Array.isArray(allowedMutationSurfaces) && allowedMutationSurfaces.length > 0
7094
- ? allowedMutationSurfaces
7095
- : ['project_roadmap_task'];
7096
- const normalizedAcknowledgedReminders = Array.isArray(acknowledgedReminders)
7097
- ? acknowledgedReminders
7098
- : undefined;
7099
- const normalizedExecutionIntent = (() => {
7100
- if (executionIntent && typeof executionIntent === 'object') {
7101
- const execution_type = cleanText(executionIntent.execution_type) || cleanText(executionIntent.executionType);
7102
- const execution_purpose = cleanText(executionIntent.execution_purpose) || cleanText(executionIntent.executionPurpose);
7103
- if (execution_type || execution_purpose) {
7104
- return {
7105
- ...(execution_type ? { execution_type } : {}),
7106
- ...(execution_purpose ? { execution_purpose } : {}),
7107
- };
7108
- }
7109
- }
7110
- const normalizedExecutionType = cleanText(executionType) || 'implementation_task';
7111
- const normalizedExecutionPurpose = cleanText(executionPurpose) || cleanText(title) || 'implementation task';
7112
- return {
7113
- execution_type: normalizedExecutionType,
7114
- execution_purpose: normalizedExecutionPurpose,
7115
- };
7116
- })();
7117
- await this._assertExecutionEligibility({
7118
- claim_id: normalizedClaimId,
7119
- claim_project_id: normalizedClaimProjectId,
7120
- claimed_item_id: normalizedClaimedItemId,
7121
- workflow_run_id: normalizedWorkflowRunId,
7122
- agent_session_id: normalizedAgentSessionId,
7123
- allowed_mutation_surfaces: normalizedAllowedMutationSurfaces,
7124
- acknowledged_reminders: normalizedAcknowledgedReminders || [],
7125
- requested_mutation_surface: 'project_roadmap_task',
7126
- verification_required: true,
7127
- });
7128
- return this._request(`/api/operator/implementation-items/${implementationItemId}/tasks`, {
7129
- method: 'POST',
7130
- body: {
7131
- title,
7132
- implementation_packet_id: implementationPacketId,
7133
- description,
7134
- priority,
7135
- assigned_to: assignedTo,
7136
- assigned_by: assignedBy,
7137
- due_at: dueAt,
7138
- sort_order: sortOrder,
7139
- notes,
7140
- created_by: createdBy,
7141
- parent_task_id: parentTaskId,
7142
- claim_id: normalizedClaimId,
7143
- claim_project_id: normalizedClaimProjectId,
7144
- claimed_item_id: normalizedClaimedItemId,
7145
- workflow_run_id: normalizedWorkflowRunId,
7146
- agent_session_id: normalizedAgentSessionId,
7147
- allowed_mutation_surfaces: normalizedAllowedMutationSurfaces,
7148
- acknowledged_reminders: normalizedAcknowledgedReminders,
7149
- execution_intent: normalizedExecutionIntent,
7150
- },
7034
+ return this.implementationItems.createImplementationTask(implementationItemId, {
7035
+ title,
7036
+ implementationPacketId,
7037
+ description,
7038
+ priority,
7039
+ assignedTo,
7040
+ assignedBy,
7041
+ dueAt,
7042
+ sortOrder,
7043
+ notes,
7044
+ createdBy,
7045
+ parentTaskId,
7046
+ claimId,
7047
+ claimProjectId,
7048
+ projectId,
7049
+ claimedItemId,
7050
+ workflowRunId,
7051
+ agentSessionId,
7052
+ allowedMutationSurfaces,
7053
+ acknowledgedReminders,
7054
+ executionIntent,
7055
+ executionType,
7056
+ executionPurpose,
7151
7057
  });
7152
7058
  }
7153
7059
 
7154
7060
  async listImplementationTasks(implementationItemId) {
7155
- return this._request(`/api/operator/implementation-items/${implementationItemId}/tasks`);
7061
+ return this.implementationItems.listImplementationTasks(implementationItemId);
7156
7062
  }
7157
7063
 
7158
7064
  async listImplementationSubtasks(taskId) {
7159
- return this._request(`/api/operator/implementation-item-tasks/${taskId}/subtasks`);
7065
+ return this.implementationItems.listImplementationSubtasks(taskId);
7160
7066
  }
7161
7067
 
7162
7068
  async updateImplementationTask(taskId, updates) {
7163
- return this._request(`/api/operator/implementation-item-tasks/${taskId}`, {
7164
- method: 'PATCH',
7165
- body: updates,
7166
- });
7069
+ return this.implementationItems.updateImplementationTask(taskId, updates);
7167
7070
  }
7168
7071
 
7169
7072
  async assignImplementationTask(taskId, { assignedTo, assignedBy } = {}) {
7170
- return this._request(`/api/operator/implementation-item-tasks/${taskId}/assign`, {
7171
- method: 'POST',
7172
- body: { assigned_to: assignedTo, assigned_by: assignedBy },
7173
- });
7073
+ return this.implementationItems.assignImplementationTask(taskId, { assignedTo, assignedBy });
7174
7074
  }
7175
7075
 
7176
7076
  async completeImplementationTask(taskId, { completedBy } = {}) {
7177
- return this._request(`/api/operator/implementation-item-tasks/${taskId}/complete`, {
7178
- method: 'POST',
7179
- body: { completed_by: completedBy },
7180
- });
7077
+ return this.implementationItems.completeImplementationTask(taskId, { completedBy });
7181
7078
  }
7182
7079
 
7183
7080
  // ─── Governed Implementation ───────────────────────────────────────────────
7184
7081
 
7185
7082
  async importImplementationPacket(body) {
7186
- return this._request('/api/governed-implementation/packets/import', { method: 'POST', body });
7083
+ return this.implementationPackets.importImplementationPacket(body);
7187
7084
  }
7188
7085
 
7189
7086
  async listImplementationPackets({ status, packetType } = {}) {
7190
- return this._request('/api/governed-implementation/packets', {
7191
- query: { status, packet_type: packetType },
7192
- });
7087
+ return this.implementationPackets.listImplementationPackets({ status, packetType });
7193
7088
  }
7194
7089
 
7195
7090
  async getImplementationPacket(packetId) {
7196
- return this._request(`/api/governed-implementation/packets/${packetId}`);
7091
+ return this.implementationPackets.getImplementationPacket(packetId);
7197
7092
  }
7198
7093
 
7199
7094
  async getImplementationItemAcceptanceChecks(implementationItemId) {
7200
- return this._request(`/api/governed-implementation/items/${implementationItemId}/acceptance-checks`);
7095
+ return this.implementationGates.getImplementationItemAcceptanceChecks(implementationItemId);
7201
7096
  }
7202
7097
 
7203
7098
  async getArtifactManifest(implementationItemId) {
7204
- return this._request(`/api/governed-implementation/items/${implementationItemId}/artifact-manifest`);
7099
+ return this.implementationArtifacts.getArtifactManifest(implementationItemId);
7205
7100
  }
7206
7101
 
7207
7102
  async getDecisionPacket(implementationItemId) {
7208
- return this._request(`/api/governed-implementation/items/${implementationItemId}/decision-packet`);
7103
+ return this.implementationArtifacts.getDecisionPacket(implementationItemId);
7209
7104
  }
7210
7105
 
7211
7106
  async updateImplementationItemStatus(implementationItemId, body) {
@@ -7252,19 +7147,15 @@ export class AIEngineClient {
7252
7147
  }
7253
7148
 
7254
7149
  async addImplementationItemEvidence(implementationItemId, body) {
7255
- return this._request(`/api/governed-implementation/items/${implementationItemId}/evidence`, {
7256
- method: 'POST', body,
7257
- });
7150
+ return this.implementationEvidence.addImplementationItemEvidence(implementationItemId, body);
7258
7151
  }
7259
7152
 
7260
7153
  async addImplementationItemActivity(implementationItemId, body) {
7261
- return this._request(`/api/governed-implementation/items/${implementationItemId}/activity`, {
7262
- method: 'POST', body,
7263
- });
7154
+ return this.implementationEvidence.addImplementationItemActivity(implementationItemId, body);
7264
7155
  }
7265
7156
 
7266
7157
  async listImplementationItemActivity(implementationItemId) {
7267
- return this._request(`/api/governed-implementation/items/${implementationItemId}/activity`);
7158
+ return this.implementationEvidence.listImplementationItemActivity(implementationItemId);
7268
7159
  }
7269
7160
 
7270
7161
  async updateAcceptanceCheckStatus(implementationItemId, acceptanceCheckId, body) {
@@ -7281,23 +7172,19 @@ export class AIEngineClient {
7281
7172
  }
7282
7173
 
7283
7174
  async createImplementationPacketGateDecision(packetId, body) {
7284
- return this._request(`/api/governed-implementation/packets/${packetId}/gate-decisions`, {
7285
- method: 'POST', body,
7286
- });
7175
+ return this.implementationGates.createImplementationPacketGateDecision(packetId, body);
7287
7176
  }
7288
7177
 
7289
7178
  async bindImplementationPacketToWorkflow(workflowId, body) {
7290
- return this._request(`/api/governed-implementation/workflows/${workflowId}/bindings`, {
7291
- method: 'POST', body,
7292
- });
7179
+ return this.implementationPackets.bindImplementationPacketToWorkflow(workflowId, body);
7293
7180
  }
7294
7181
 
7295
7182
  async getWorkflowImplementationRoadmap(workflowId) {
7296
- return this._request(`/api/governed-implementation/workflows/${workflowId}/roadmap`);
7183
+ return this.implementationPackets.getWorkflowImplementationRoadmap(workflowId);
7297
7184
  }
7298
7185
 
7299
7186
  async getWorkflowResumeContext(workflowId) {
7300
- return this._request(`/api/governed-implementation/workflows/${workflowId}/resume-context`);
7187
+ return this.implementationPackets.getWorkflowResumeContext(workflowId);
7301
7188
  }
7302
7189
 
7303
7190
  async executeVerifiedMutation({
@@ -0,0 +1,5 @@
1
+ export function createActionsDomain(client) {
2
+ return {
3
+ submit: (request) => client.submitActionIntent(request),
4
+ };
5
+ }
@@ -0,0 +1,14 @@
1
+ import { createDatabaseBackupsDomain } from './database/backups.js';
2
+
3
+ export function createDatabaseDomain(client) {
4
+ return {
5
+ createDatabaseBackup: (request) => client.createDatabaseBackup(request),
6
+ listDatabaseBackups: (request) => client.listDatabaseBackups(request),
7
+ getDatabaseBackup: (request) => client.getDatabaseBackup(request),
8
+ listDatabaseBackupOperations: (request) => client.listDatabaseBackupOperations(request),
9
+ runAzureSqlBacpacBackup: (request) => client.runAzureSqlBacpacBackup(request),
10
+ listAzureSqlBacpacBackups: (request) => client.listAzureSqlBacpacBackups(request),
11
+ listAzureSqlBacpacBackupOperations: (request) => client.listAzureSqlBacpacBackupOperations(request),
12
+ backups: createDatabaseBackupsDomain(client),
13
+ };
14
+ }
@@ -0,0 +1,16 @@
1
+ export function createDesignIntelligenceDomain(client) {
2
+ return {
3
+ getDesignIntelligenceDashboard: () => client.getDesignIntelligenceDashboard(),
4
+ listDesignDecisions: () => client.listDesignDecisions(),
5
+ getDesignDecision: (decisionId) => client.getDesignDecision(decisionId),
6
+ getDesignDecisionVariants: (decisionId) => client.getDesignDecisionVariants(decisionId),
7
+ getDesignDecisionCritique: (decisionId) => client.getDesignDecisionCritique(decisionId),
8
+ getDesignDecisionLineage: (decisionId) => client.getDesignDecisionLineage(decisionId),
9
+ listDesignPatterns: () => client.listDesignPatterns(),
10
+ getDecisionLabCanvas: () => client.getDecisionLabCanvas(),
11
+ getDesignRecommendations: () => client.getDesignRecommendations(),
12
+ getDesignPromotions: () => client.getDesignPromotions(),
13
+ previewDesignPromotion: (body) => client.previewDesignPromotion(body),
14
+ getDesignIntelligenceMetrics: () => client.getDesignIntelligenceMetrics(),
15
+ };
16
+ }
@@ -0,0 +1,8 @@
1
+ export function createExecutionTelemetryDomain(client) {
2
+ return {
3
+ getCurrent: () => client.getExecutionTelemetryCurrent(),
4
+ listProcessRuns: (request) => client.listExecutionProcessRuns(request),
5
+ getProcessRun: (processRunId) => client.getExecutionProcessRun(processRunId),
6
+ getGeneratedExecutionUsability: (request) => client.getGeneratedExecutionUsability(request),
7
+ };
8
+ }
@@ -0,0 +1,6 @@
1
+ export function createImplementationArtifactsDomain(client) {
2
+ return {
3
+ getArtifactManifest: (implementationItemId) => client._request(`/api/governed-implementation/items/${implementationItemId}/artifact-manifest`),
4
+ getDecisionPacket: (implementationItemId) => client._request(`/api/governed-implementation/items/${implementationItemId}/decision-packet`),
5
+ };
6
+ }
@@ -0,0 +1,13 @@
1
+ export function createImplementationEvidenceDomain(client) {
2
+ return {
3
+ addImplementationItemEvidence: (implementationItemId, body) => client._request(`/api/governed-implementation/items/${implementationItemId}/evidence`, {
4
+ method: 'POST',
5
+ body,
6
+ }),
7
+ addImplementationItemActivity: (implementationItemId, body) => client._request(`/api/governed-implementation/items/${implementationItemId}/activity`, {
8
+ method: 'POST',
9
+ body,
10
+ }),
11
+ listImplementationItemActivity: (implementationItemId) => client._request(`/api/governed-implementation/items/${implementationItemId}/activity`),
12
+ };
13
+ }
@@ -0,0 +1,9 @@
1
+ export function createImplementationGatesDomain(client) {
2
+ return {
3
+ getImplementationItemAcceptanceChecks: (implementationItemId) => client._request(`/api/governed-implementation/items/${implementationItemId}/acceptance-checks`),
4
+ createImplementationPacketGateDecision: (packetId, body) => client._request(`/api/governed-implementation/packets/${packetId}/gate-decisions`, {
5
+ method: 'POST',
6
+ body,
7
+ }),
8
+ };
9
+ }
@@ -0,0 +1,107 @@
1
+ export function createImplementationItemsDomain(client) {
2
+ return {
3
+ createImplementationTask: async (implementationItemId, {
4
+ title,
5
+ implementationPacketId,
6
+ description,
7
+ priority,
8
+ assignedTo,
9
+ assignedBy,
10
+ dueAt,
11
+ sortOrder,
12
+ notes,
13
+ createdBy,
14
+ parentTaskId,
15
+ claimId,
16
+ claimProjectId,
17
+ projectId,
18
+ claimedItemId,
19
+ workflowRunId,
20
+ agentSessionId,
21
+ allowedMutationSurfaces,
22
+ acknowledgedReminders,
23
+ executionIntent,
24
+ executionType,
25
+ executionPurpose,
26
+ } = {}) => {
27
+ const normalizedClaimId = String(claimId || '').trim() || null;
28
+ const normalizedClaimProjectId = String(claimProjectId || projectId || '').trim() || null;
29
+ const normalizedClaimedItemId = String(claimedItemId || implementationItemId || '').trim() || null;
30
+ const normalizedWorkflowRunId = String(workflowRunId || '').trim() || null;
31
+ const normalizedAgentSessionId = String(agentSessionId || '').trim() || null;
32
+ const normalizedAllowedMutationSurfaces = Array.isArray(allowedMutationSurfaces) && allowedMutationSurfaces.length > 0
33
+ ? allowedMutationSurfaces
34
+ : ['project_roadmap_task'];
35
+ const normalizedAcknowledgedReminders = Array.isArray(acknowledgedReminders)
36
+ ? acknowledgedReminders
37
+ : undefined;
38
+ const normalizedExecutionIntent = (() => {
39
+ if (executionIntent && typeof executionIntent === 'object') {
40
+ const execution_type = String(executionIntent.execution_type || executionIntent.executionType || '').trim();
41
+ const execution_purpose = String(executionIntent.execution_purpose || executionIntent.executionPurpose || '').trim();
42
+ if (execution_type || execution_purpose) {
43
+ return {
44
+ ...(execution_type ? { execution_type } : {}),
45
+ ...(execution_purpose ? { execution_purpose } : {}),
46
+ };
47
+ }
48
+ }
49
+ const normalizedExecutionType = String(executionType || '').trim() || 'implementation_task';
50
+ const normalizedExecutionPurpose = String(executionPurpose || title || '').trim() || 'implementation task';
51
+ return {
52
+ execution_type: normalizedExecutionType,
53
+ execution_purpose: normalizedExecutionPurpose,
54
+ };
55
+ })();
56
+ await client._assertExecutionEligibility({
57
+ claim_id: normalizedClaimId,
58
+ claim_project_id: normalizedClaimProjectId,
59
+ claimed_item_id: normalizedClaimedItemId,
60
+ workflow_run_id: normalizedWorkflowRunId,
61
+ agent_session_id: normalizedAgentSessionId,
62
+ allowed_mutation_surfaces: normalizedAllowedMutationSurfaces,
63
+ acknowledged_reminders: normalizedAcknowledgedReminders || [],
64
+ requested_mutation_surface: 'project_roadmap_task',
65
+ verification_required: true,
66
+ });
67
+ return client._request(`/api/operator/implementation-items/${implementationItemId}/tasks`, {
68
+ method: 'POST',
69
+ body: {
70
+ title,
71
+ implementation_packet_id: implementationPacketId,
72
+ description,
73
+ priority,
74
+ assigned_to: assignedTo,
75
+ assigned_by: assignedBy,
76
+ due_at: dueAt,
77
+ sort_order: sortOrder,
78
+ notes,
79
+ created_by: createdBy,
80
+ parent_task_id: parentTaskId,
81
+ claim_id: normalizedClaimId,
82
+ claim_project_id: normalizedClaimProjectId,
83
+ claimed_item_id: normalizedClaimedItemId,
84
+ workflow_run_id: normalizedWorkflowRunId,
85
+ agent_session_id: normalizedAgentSessionId,
86
+ allowed_mutation_surfaces: normalizedAllowedMutationSurfaces,
87
+ acknowledged_reminders: normalizedAcknowledgedReminders,
88
+ execution_intent: normalizedExecutionIntent,
89
+ },
90
+ });
91
+ },
92
+ listImplementationTasks: (implementationItemId) => client._request(`/api/operator/implementation-items/${implementationItemId}/tasks`),
93
+ listImplementationSubtasks: (taskId) => client._request(`/api/operator/implementation-item-tasks/${taskId}/subtasks`),
94
+ updateImplementationTask: (taskId, updates) => client._request(`/api/operator/implementation-item-tasks/${taskId}`, {
95
+ method: 'PATCH',
96
+ body: updates,
97
+ }),
98
+ assignImplementationTask: (taskId, request = {}) => client._request(`/api/operator/implementation-item-tasks/${taskId}/assign`, {
99
+ method: 'POST',
100
+ body: { assigned_to: request.assignedTo, assigned_by: request.assignedBy },
101
+ }),
102
+ completeImplementationTask: (taskId, request = {}) => client._request(`/api/operator/implementation-item-tasks/${taskId}/complete`, {
103
+ method: 'POST',
104
+ body: { completed_by: request.completedBy },
105
+ }),
106
+ };
107
+ }
@@ -0,0 +1,15 @@
1
+ export function createImplementationPacketsDomain(client) {
2
+ return {
3
+ importImplementationPacket: (body) => client._request('/api/governed-implementation/packets/import', { method: 'POST', body }),
4
+ listImplementationPackets: (request = {}) => client._request('/api/governed-implementation/packets', {
5
+ query: { status: request.status, packet_type: request.packetType },
6
+ }),
7
+ getImplementationPacket: (packetId) => client._request(`/api/governed-implementation/packets/${packetId}`),
8
+ bindImplementationPacketToWorkflow: (workflowId, body) => client._request(`/api/governed-implementation/workflows/${workflowId}/bindings`, {
9
+ method: 'POST',
10
+ body,
11
+ }),
12
+ getWorkflowImplementationRoadmap: (workflowId) => client._request(`/api/governed-implementation/workflows/${workflowId}/roadmap`),
13
+ getWorkflowResumeContext: (workflowId) => client._request(`/api/governed-implementation/workflows/${workflowId}/resume-context`),
14
+ };
15
+ }
@@ -0,0 +1,13 @@
1
+ export function createLogaDomain(client) {
2
+ return {
3
+ submitUxGateRemediation: (payload) => client.submitUxGateRemediation(payload),
4
+ listUxGateRemediations: (query) => client.listUxGateRemediations(query),
5
+ getUxGateRemediation: (remediationId) => client.getUxGateRemediation(remediationId),
6
+ appendUxRemediationTicketNote: (remediationId, payload) => client.appendUxRemediationTicketNote(remediationId, payload),
7
+ listUxRemediationTicketNotes: (remediationId) => client.listUxRemediationTicketNotes(remediationId),
8
+ promoteUxGateRemediationImplementationCandidate: (remediationId, payload) =>
9
+ client.promoteUxGateRemediationImplementationCandidate(remediationId, payload),
10
+ getUxGateRemediationProjection: (remediationId) => client.getLogaUxGateRemediationProjection(remediationId),
11
+ getGeneratedExecutionUsabilityProjection: (query) => client.getLogaGeneratedExecutionUsabilityProjection(query),
12
+ };
13
+ }
@@ -0,0 +1,55 @@
1
+ export function createProjectCharteringDomain(client) {
2
+ return {
3
+ createProjectDelivery: (body = {}) => client._request('/api/project-delivery', { method: 'POST', body }),
4
+ approveProjectCharterIntent: (projectId, body = {}) => {
5
+ if (!projectId) throw new Error('projectId is required.');
6
+ return client._request(`/api/project-delivery/${encodeURIComponent(projectId)}/approve-charter-intent`, {
7
+ method: 'POST',
8
+ body,
9
+ });
10
+ },
11
+ approveImplementationRoadmap: (projectId, body = {}) => {
12
+ if (!projectId) throw new Error('projectId is required.');
13
+ return client._request(`/api/project-delivery/${encodeURIComponent(projectId)}/approve-roadmap`, {
14
+ method: 'POST',
15
+ body,
16
+ });
17
+ },
18
+ runProjectCharter: (projectId, body = {}) => {
19
+ if (!projectId) throw new Error('projectId is required.');
20
+ return client._request(`/api/project-delivery/${encodeURIComponent(projectId)}/run-charter`, {
21
+ method: 'POST',
22
+ body,
23
+ });
24
+ },
25
+ beginImplementationRoadmap: (projectId, body = {}) => {
26
+ if (!projectId) throw new Error('projectId is required.');
27
+ return client._request(`/api/project-delivery/${encodeURIComponent(projectId)}/begin-roadmap`, {
28
+ method: 'POST',
29
+ body,
30
+ });
31
+ },
32
+ createProjectCharter: (request = {}) => client._request('/api/projects/charter', {
33
+ method: 'POST',
34
+ body: {
35
+ project_name: request.projectName,
36
+ objective: request.objective,
37
+ business_context: request.businessContext,
38
+ success_criteria: request.successCriteria,
39
+ priority: request.priority,
40
+ constraints: request.constraints ?? [],
41
+ in_scope: request.inScope ?? [],
42
+ out_of_scope: request.outOfScope ?? [],
43
+ assumptions: request.assumptions ?? [],
44
+ linked_workflows: request.linkedWorkflows ?? [],
45
+ linked_workflow_slug: request.linkedWorkflowSlug,
46
+ testing_strategy: request.testingStrategy ?? {},
47
+ initial_context: request.initialContext ?? {},
48
+ requested_by: request.requestedBy,
49
+ ensure_task_surface: request.ensureTaskSurface ?? true,
50
+ assigned_to: request.assignedTo,
51
+ create_acceptance_subtasks: request.createAcceptanceSubtasks ?? true,
52
+ },
53
+ }),
54
+ };
55
+ }
@@ -0,0 +1,13 @@
1
+ export function createProjectionsDomain(client) {
2
+ return {
3
+ render: (request) => client.renderProjection(request),
4
+ getTransferHomeProjection: () => client.getLogaTransferHomeProjection(),
5
+ getTransferInboxProjection: (query) => client.getLogaTransferInboxProjection(query),
6
+ getTransferPacketProjection: (workTransferPacketId) => client.getLogaTransferPacketProjection(workTransferPacketId),
7
+ getTransferChannelProjection: (transferChannelId) => client.getTransferChannelProjection(transferChannelId),
8
+ getTransferNegotiationEventsProjection: (query) => client.getLogaTransferNegotiationEventsProjection(query),
9
+ getTransferFrictionLaneProjection: (query) => client.getLogaTransferFrictionLaneProjection(query),
10
+ getTransferReceiptsProjection: (query) => client.getLogaTransferReceiptsProjection(query),
11
+ getTransferClosureReviewProjection: (workTransferPacketId) => client.getLogaTransferClosureReviewProjection(workTransferPacketId),
12
+ };
13
+ }
@@ -0,0 +1,49 @@
1
+ export function createProjectsDomain(client) {
2
+ return {
3
+ listProjects: (request) => client._request('/api/operator/projects', {
4
+ query: {
5
+ limit: request?.limit,
6
+ include_inactive: request?.includeInactive,
7
+ process_status: request?.processStatus,
8
+ charter_status: request?.charterStatus,
9
+ },
10
+ }),
11
+ getProject: (projectId) => client._request(`/api/operator/projects/${projectId}`),
12
+ listProjectWorkflowRuns: (projectId, request = {}) => client._request(`/api/operator/projects/${projectId}/workflow-runs`, {
13
+ query: { limit: request.limit ?? 25 },
14
+ }),
15
+ getProjectCharterReport: (projectId) => client._request(`/api/operator/projects/${projectId}/charter/report`),
16
+ createProjectMarkdownDownload: (projectId, request = {}) => client._request(`/api/operator/projects/${projectId}/markdown-report-downloads`, {
17
+ method: 'POST',
18
+ body: {
19
+ report_type: request.reportType,
20
+ include_markdown: request.includeMarkdown ?? false,
21
+ },
22
+ }),
23
+ downloadProjectMarkdownReport: (projectId, reportType) => client._requestText(`/api/operator/projects/${projectId}/markdown-reports/${reportType}/download`),
24
+ downloadProjectCharterReportMarkdown: (projectId) => client._requestText(`/api/operator/projects/${projectId}/markdown-reports/charter/download`),
25
+ getProjectBundle: (projectId) => client._request(`/api/operator/projects/${projectId}/bundle`),
26
+ resumeProjectWork: (request = {}) => {
27
+ const normalizedProjectIdentifier = String(request.projectIdentifier || request.projectId || '').trim();
28
+ if (!normalizedProjectIdentifier) {
29
+ throw new Error('projectIdentifier is required.');
30
+ }
31
+ return client._request(`/api/operator/projects/${encodeURIComponent(normalizedProjectIdentifier)}/resume-context`, {
32
+ query: {
33
+ actor_mode: request.actorMode,
34
+ execution_intent: request.executionIntent,
35
+ require_claim: request.requireClaim,
36
+ workflow_run_limit: request.workflowRunLimit,
37
+ },
38
+ });
39
+ },
40
+ listProjectOpenTasks: (projectId) => client._request(`/api/operator/projects/${projectId}/open-tasks`),
41
+ getProjectPerformanceMetrics: (projectId, request = {}) => client._request(`/api/operator/projects/${projectId}/performance-metrics`, {
42
+ query: {
43
+ workflow_id: request.workflowId,
44
+ workflow_run_id: request.workflowRunId,
45
+ since_utc: request.sinceUtc,
46
+ },
47
+ }),
48
+ };
49
+ }
@@ -0,0 +1,5 @@
1
+ export function createReportsDomain(client) {
2
+ return {
3
+ run: (request) => client.runReportDefinition(request),
4
+ };
5
+ }
@@ -0,0 +1,20 @@
1
+ export function createRoadmapsDomain(client) {
2
+ return {
3
+ listProjectRoadmaps: (request = {}) => client._request('/api/operator/projects/implementation-roadmaps', {
4
+ query: { include_inactive: request.includeInactive },
5
+ }),
6
+ getProjectRoadmap: (projectId) => client._request(`/api/operator/projects/${projectId}/implementation-roadmap`),
7
+ getProjectRoadmapSummary: (projectId) => client._request(`/api/operator/projects/${projectId}/implementation-roadmap/summary`),
8
+ getProjectRoadmapActiveItem: (projectId) => client._request(`/api/operator/projects/${projectId}/implementation-roadmap/active-item`),
9
+ getProjectImplementationRoadmapReport: (projectId) => client._request(`/api/operator/projects/${projectId}/implementation-roadmap/report`),
10
+ downloadProjectImplementationRoadmapReportMarkdown: (projectId) => client._requestText(`/api/operator/projects/${projectId}/markdown-reports/implementation_roadmap/download`),
11
+ ensureProjectRoadmapTaskSurface: (projectId, request = {}) => client._request(`/api/operator/projects/${projectId}/implementation-roadmap/task-surface`, {
12
+ method: 'POST',
13
+ body: {
14
+ requested_by: request.requestedBy,
15
+ assigned_to: request.assignedTo,
16
+ create_acceptance_subtasks: request.createAcceptanceSubtasks ?? true,
17
+ },
18
+ }),
19
+ };
20
+ }
@@ -0,0 +1,8 @@
1
+ export function createScriptsDomain(client) {
2
+ return {
3
+ generate: (payload) => client.generateScript(payload),
4
+ render: (scriptId) => client.renderScript(scriptId),
5
+ submitArtifact: (scriptId, payload) => client.submitScriptArtifact(scriptId, payload),
6
+ getRunEvidence: (query) => client.getScriptRunEvidence(query),
7
+ };
8
+ }
package/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { AIEngineClient, createAIEngineClient } from './client.js';
2
- export const AI_ENGINE_CLIENT_VERSION = '1.1.73';
2
+ export const AI_ENGINE_CLIENT_VERSION = '1.1.75';
3
3
  export { GOVERNED_MUTATION_REQUIRED_CAPABILITIES, AI_ENGINE_CLIENT_CAPABILITIES, TASK_BOUND_SUBSTRATE_EXECUTION_POLICY } from './constants/governance.js';
4
4
  export { LOGA_CONTRACT, LOGA_INTERACTION_CONTRACT, LOGA_NAVIGATION_CONTRACT, LOGA_PROJECTION_WORKFLOW } from './constants/loga.js';
5
5
  export {